mysql_query() envoie une requête (au serveur MySQL
actuellement actif 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 ou EXPLAIN,
mysql_query() retournera une ressource en cas de succès,
ou FALSE en cas d'erreur.
Pour les autres types de requêtes, 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 requpetes 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); ?>