mysql_query
(PHP 4, PHP 5)
mysql_query — Envoie une requ�te � un serveur MySQL
Description
mysql_query() envoie une seule requ�te (les requ�tes multiples ne sont pas support�es) � la base de donn�es courante sur le serveur associ� avec le link_identifier sp�cifi�.
Liste de param�tres
- query
-
Une requ�te SQL
La cha�ne de requ�te ne doit pas se terminer par un point-virgule.
- link_identifier
-
La connexion MySQL. S'il n'est pas sp�cifi�, la derni�re connexion ouverte avec la fonction mysql_connect() sera utilis�e. Si une telle connexion n'est pas trouv�e, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait �t� appel�e sans argument. Si aucune connexion n'est trouv�e ou �tablie, une alerte E_WARNING est g�n�r�e.
Valeurs de retour
Pour les requ�tes du type SELECT, SHOW, DESCRIBE, EXPLAIN et les autres requ�tes retournant un jeu de r�sultats, mysql_query() retournera une ressource en cas de succ�s, ou FALSE en cas d'erreur.
Pour les autres types de requ�tes, INSERT, UPDATE, DELETE, DROP, etc., mysql_query() retourne TRUE en cas de succ�s ou FALSE en cas d'erreur.
La ressource de r�sultat retourn�e doit �tre pass�e � la fonction mysql_fetch_array(), et les autres fonctions permettant d'explorer le r�sultat des tables, pour acc�der aux donn�es retourn�es.
Utilisez mysql_num_rows() pour trouver le nombre de lignes retourn�es pour une requ�te du type SELECT ou mysql_affected_rows() pour trouver le nombre de lignes affect�es par les requ�tes du type DELETE, INSERT, REPLACE, ou UPDATE.
mysql_query() �chouera et retournera FALSE si l'utilisateur n'a pas les autorisations n�cessaire pour acc�der � la (aux) table(s) r�f�renc�e(s) par la requ�te.
Exemples
Exemple #1 Requ�te invalide
La requ�te suivante est syntaxiquement invalide, donc mysql_query() va �chouer et retourner FALSE.
<?php
$result = mysql_query('SELECT * WHERE 1=1');
if (!$result) {
die('Requ�te invalide : ' . mysql_error());
}
?>
Exemple #2 Requ�te valide
La requ�te suivante est valide, donc mysql_query() va retourner une ressource.
<?php
// Ceci peut �tre demand� par un utilisateur, par exemple :
$firstname = 'fred';
$lastname = 'fox';
// Formulation de la requ�te
// C'est la meilleur fa�on d'ex�cuter une requ�te SQL
// Pour plus d'exemples, voir mysql_real_escape_string()
$query = sprintf("SELECT firstname, lastname, address, age FROM friends WHERE firstname='%s' AND lastname='%s'",
mysql_real_escape_string($firstname),
mysql_real_escape_string($lastname));
// Ex�cution de la requ�te
$result = mysql_query($query);
// V�rification du r�sultat
// Ceci montre la requ�te envoy�e � MySQL ainsi que l'erreur. Utile pour d�boguer.
if (!$result) {
$message = 'Requ�te invalide : ' . mysql_error() . "\n";
$message .= 'Requ�te compl�te : ' . $query;
die($message);
}
// Utilisation du r�sultat
// Tenter d'affichager $result ne vous donnera pas d'informations contenues dans la ressource
// Une des fonctions MySQL de r�sultat doit �tre utilis�e
// Voir aussi mysql_result(), mysql_fetch_array(), mysql_fetch_row(), etc.
while ($row = mysql_fetch_assoc($result)) {
echo $row['firstname'];
echo $row['lastname'];
echo $row['address'];
echo $row['age'];
}
// Lib�ration des ressources associ�es au jeu de r�sultats
// Ceci est effectu� automatiquement � la fin du script
mysql_free_result($result);
?>
Voir aussi
- mysql_connect() - Ouvre une connexion � un serveur MySQL
- mysql_error() - Retourne le texte associ� avec l'erreur g�n�r�e lors de la derni�re requ�te
- mysql_real_escape_string() - Prot�ge les caract�res sp�ciaux d'une commande SQL
- mysql_result() - Retourne un champ d'un r�sultat MySQL
- mysql_fetch_assoc() - Lit une ligne de r�sultat MySQL dans un tableau associatif
- mysql_unbuffered_query() - Ex�cute une requ�te SQL sans mobiliser les r�sultats MySQL