int mysql_stmt_prepare(MYSQL_STMT *stmt, const char
*query, unsigned long length)
Description
Prépare la requête représentée par la chaîne terminée
par NUL query
, et retourne un pointeur de
commande à utiliser ultérieurement pour les autres
opérations. La requête doit contenir une commande SQL
unique. Vous ne devez pas ajouter le point-virgule
(‘;
’) ni \g
de fin de requête.
L'application peut inclure une ou plusieurs variable de
requête SQL, grâce au caractère point d'interrogation
(‘?
’), placé dans la commande
SQL, aux bons endroits.
Les variables de requêtes ne sont valides qu'à certaines
places dans les commandes SQL. Par exemple, elles sont
autorisées dans les listes VALUES()
d'une
commande INSERT
(pour spécifier les
valeurs des lignes), ou dans les clauses de comparaisons
WHERE
, pour spécifier une valeur de
comparaison. Sinon, elles ne sont pas autorisées pour les
identifiants (comme les noms de tables ou de colonnes), dans
les listes de colonnes sélectionnées par la commande
SELECT
, ou pour spécifier un opérateur
tel que =
. Cette dernière restriction est
due au fait qu'il serait impossible de déterminer le type de
paramètre. En général, les variables ne sont autorisées
que dans les commandes de manipulations de données
(Data Manipulation Language (DML)
), et non
pas dans les commandes de définition des données
(Data Defination Language (DDL)
.
Les variables de requêtes doivent être liés par
l'application à des variables, avec la fonction
mysql_stmt_bind_param()
avant exécution.
Valeur retournées
Erreurs
CR_COMMANDS_OUT_OF_SYNC
Commands were executed in an improper
order
: les commandes ont été exécutées
dans un ordre invalide.
CR_OUT_OF_MEMORY
Out of memory
: plus de mémoire.
CR_SERVER_GONE_ERROR
The MySQL server has gone away
: le
serveur s'est éteint durant l'exécution de la requête.
CR_SERVER_LOST
The connection to the server was lost during the
query
: la connexion au serveur a été perdue.
CR_UNKNOWN_ERROR
An unknown error occurred
: erreur
inconnue.
Si la préparation échoue, c'est à dire si
mysql_stmt_prepare()
retourne
NULL
), un message d'erreur peut être
obtenu en appelant mysql_error()
.
Exemple
Pour une utilisation de
mysql_stmt_prepare()
, voyez l'exemple dans
Section 24.2.7.10, « mysql_stmt_execute()
».
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.