int mysql_query
(string query, int [link_identifier] );
mysql_query() Envoie une requête SQL à la base de données actuellement active sur le serveur MysQL. Si link_identifier n'est pas précisé, la dernière connexion est utilisée. Si aucune connexion n'a été ouverte, la fonction tentera d'en ouvrir une, avec la fonction mysql_connect() mais sans aucun paramètre (c'est à dire avec les valeurs par défaut).
La chaîne de requête ne devrait pas se terminer par un point virgule.
mysql_query() retourne vrai (TRUE, ou non-zéro) ou faux (FALSE), pour indiquer le succès ou l'échec de la requête. En cas de retour TRUE, la requête était valide et a pu être exécuté sur le serveur. Cela n'indique pas le nombre de ligne affectées, ou retournées. Il est parfaitement possible qu'une requête valide n'affecte aucune ligne ou ne retourne aucune ligne.
L'example suivant est syntaxiquement invalide, ce qui conduit mysql_query() à l'échec, et retourne FALSE:
Exemple 1. mysql_query()
<?php $result = mysql_query ("SELECT * WHERE 1=1") or die ("Requete invalide"); ?> |
L'example suivant est sémantqiuement invalide si my_col n'est pas une colonne de la table my_tbl, ce qui conduit mysql_query() à l'échec, et retourne FALSE:
Exemple 2. mysql_query()
<?php $result = mysql_query ("SELECT my_col FROM my_tbl") or die ("Requete invalide"); ?> |
mysql_query() échouera aussi et retournera aussi FALSE si les droits d'accès ne sont pas suffisants.
En supposant que la requête réussisse, vous pouvez appeler mysql_affected_rows() pour connaître le nombre de ligne affectée (pour les commandes DELETE, INSERT, REPLACE, ou UPDATE ). Pour les commandes SELECT , mysql_query() retourne un identifiant de résultat que vous pouvez passer à mysql_result(). Lorsque vous avez terminé avec le résultat, libérez la mémoire avec mysql_free_result().
Voir aussi : mysql_affected_rows(), mysql_db_query(), mysql_free_result(), mysql_result(), mysql_select_db(), et mysql_connect().