7.62.48 mysql_query()Envoie une requête SQL à un serveur MySQL[ Exemples avec mysql_query ] PHP 3, PHP 4
resource
mysql_query (
string
query
,
resource
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).
Le paramètre optionnel
result_mode
peut prendre
les valeurs de
MYSQL_USE_RESULT
ou
MYSQL_STORE_RESULT
. Par défaut,
il vaut
MYSQL_STORE_RESULT
, ce qui fait que le résultat est mis
dans un buffer. Voyez aussi la fonction
mysql_unbuffered_query
pour comprendre cas
où le résultat n'est pas mis en buffer.
Note |
La requête ne doit pas être terminée par un point-virgule.
|
Seules les requêtes SQL
SELECT
,
SHOW
,
EXPLAIN
et
DESCRIBE
,
utilisées avec
mysql_query
retourne une ressource de résultat MySQL, ou bien
FALSE
si
la requête n'a pu être exécuté correctement. Pour les autres
types de requêtes SQL,
mysql_query
retourne
TRUE
en cas de succès et
FALSE
en cas d'erreur. Un résultat différent de
FALSE
, la valeur signifie que la requête soumise est valide
et qu'elle a pu être exécutée correctement. Cela n'apporte aucune
indication sur le nombre de lignes affectées. Il est parfaitement
possible qu'une requête soit réussie, mais qu'elle ne modifie
aucune ligne, ou qu'elle n'en retourne aucune.
L'exemple suivant est syntaxiquement invalide, ce qui conduit
mysql_query
à l'échec et retourne
FALSE
:
Exemple avec mysql_query |
<php $result = mysql_query("SELECT * WHERE 1=1") or die ("Requête invalide"); ?>
|
L'exemple suivant est sémantiquement invalide si
ma_colonne
n'est pas une colonne de la table
my_table
, ce qui conduit
mysql_query
à l'échec et retourne
FALSE
:
Exemple avec mysql_query (2) |
<?php $result = mysql_query("SELECT ma_colonne FROM ma_table") or die ("Requête 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
lignes affectées (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_fetch_array
, ou n'importe quelle autre
fonction de lecture de résultat. Lorsque vous avez terminé
avec le résultat, libérez la mémoire avec
mysql_free_result
.
Voir aussi
mysql_num_rows
,
mysql_affected_rows
,
mysql_unbuffered_query
,
mysql_free_result
,
mysql_fetch_array
,
mysql_fetch_row
,
mysql_fetch_assoc
,
mysql_result
,
mysql_select_db
et
mysql_connect
.
|