mysql_query

(PHP 4, PHP 5, PECL mysql:1.0)

mysql_query — Envoie une requête à un serveur MySQL

Description

resource mysql_query ( string $query [, resource $link_identifier] )

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

Exemple 1607. 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 1608. 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()mysql_error()mysql_real_escape_string()mysql_result()mysql_fetch_assoc()mysql_unbuffered_query()