Manuel PHP
mysql_query
(PHP 4, PHP 5, PECL mysql:1.0)
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, 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
Example#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());
- }
- ?>
Example#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);
- ?>

