8.81 Extension MySQL améliorée
8 Référence des fonctions
Manuel PHP
. Introduction . Pré-requis . Installation . Configuration à l'exécution . Classes pré-définies . Constantes pré-définies . mysqli_affected_rows . mysqli_autocommit . mysqli_bind_param . mysqli_bind_result . mysqli_change_user . mysqli_character_set_name . mysqli_client_encoding . mysqli_close . mysqli_commit . mysqli_connect_errno . mysqli_connect_error . mysqli_connect . mysqli_data_seek . mysqli_debug . mysqli_disable_reads_from_master . mysqli_disable_rpl_parse . mysqli_dump_debug_info . mysqli_embedded_connect . mysqli_enable_reads_from_master . mysqli_enable_rpl_parse . mysqli_errno . mysqli_error . mysqli_escape_string . mysqli_execute . mysqli_fetch_array . mysqli_fetch_assoc . mysqli_fetch_field_direct . mysqli_fetch_field . mysqli_fetch_fields . mysqli_fetch_lengths . mysqli_fetch_object . mysqli_fetch_row . mysqli_fetch . mysqli_field_count . mysqli_field_seek . mysqli_field_tell . mysqli_free_result . mysqli_get_client_info . mysqli_get_client_version . mysqli_get_host_info . mysqli_get_metadata . mysqli_get_proto_info . mysqli_get_server_info . mysqli_get_server_version . mysqli_info . mysqli_init . mysqli_insert_id . mysqli_kill . mysqli_master_query . mysqli_more_results . mysqli_multi_query . mysqli_next_result . mysqli_num_fields . mysqli_num_rows . mysqli_options . mysqli_param_count . mysqli_ping . mysqli_prepare . mysqli_query . mysqli_real_connect . mysqli_real_escape_string . mysqli_real_query . mysqli_report . mysqli_rollback . mysqli_rpl_parse_enabled . mysqli_rpl_probe . mysqli_rpl_query_type . mysqli_select_db . mysqli_send_long_data . mysqli_send_query . mysqli_server_end . mysqli_server_init . mysqli_set_charset . mysqli_set_opt . mysqli_sqlstate . mysqli_ssl_set . mysqli_stat . mysqli_stmt_affected_rows . mysqli_stmt_bind_param . mysqli_stmt_bind_result . mysqli_stmt_close . mysqli_stmt_data_seek . mysqli_stmt_errno . mysqli_stmt_error . mysqli_stmt_execute . mysqli_stmt_fetch . mysqli_stmt_free_result . mysqli_stmt_init . mysqli_stmt_num_rows . mysqli_stmt_param_count ->mysqli_stmt_prepare . mysqli_stmt_reset . mysqli_stmt_result_metadata . mysqli_stmt_send_long_data . mysqli_stmt_sqlstate . mysqli_stmt_store_result . mysqli_store_result . mysqli_thread_id . mysqli_thread_safe . mysqli_use_result . mysqli_warning_count
|
8.81.97 mysqli_stmt_prepare()stmt->prepare()
Prépare une requête SQL pour l'exécution
[ Exemples avec mysqli_stmt_prepare ] PHP 5
Style procédural
bool
mysqli_stmt_prepare (
mysqli_stmt
stmt
,
string
query
)
Style orienté objet (méthode)
mysqli_stmt
mixed
prepare (
string
query
)
mysqli_stmt_prepare
prépare la requête SQL
query
, pour la session de travail
stmt
.
stmt
doit
avoir été alloué par
mysqli_stmt_init
.
La requête doit être une seule requête SQL.
| Note | |
Il ne faut pas ajouter de point-virgule ou de
\g
à la fin de la requête.
|
Le paramètre
query
peut inclure une ou plusieurs
variables SQL, en utilisant des points d'interrogation
(
?
) aux bons endroits.
| Note | |
Les variables SQL ne sont possibles que dans certaines clauses
de la requête SQL. Par exemple, elles peuvent être placées dans
des clause VALUES() d'une requête INSERT (pour spécifier une
valeur à insérer), ou dans une clause de condition WHERE.
Cependant, elles ne sont pas autorisées pour les identifiants
(de tables ou de colonnes), dans les listes de colonnes d'un SELECT,
ou pour spécifier des opérateurs comme
=
. Cette
dernière restriction est liée au fait qu'il est impossible de déterminer
le type. En général, les variables SQL ne sont valides que dans
les commandes de manipulation de données (Data Manipulation Languange (DML)),
et non dans les structures du langages SQL (Data Defination Language (DDL)).
|
Les variables SQL doivent être associées à une variable PHP à l'aide de
la fonction
mysqli_stmt_bind_param
et/ou
mysqli_stmt_bind_result
, avant d'exécuter la
requête.
Cette fonction retourne
TRUE
en cas de
succès,
FALSE
en cas d'échec.
| Style orienté objet |
<?php $mysqli = new mysqli("localhost", "utilisateur", "mot_de_passe", "base");
/* Vérification de la connexion */ if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit(); }
$city = "Amersfoort";
/* Création d'une requête préparée */ $stmt = $mysqli->stmt_init(); if ($stmt->prepare("SELECT Region FROM Ville WHERE Name=?")) {
/* Association des variables SQL */ $stmt->bind_param("s", $city);
/* Exécution de la requête */ $stmt->execute();
/* Association des variables de résultats */ $stmt->bind_result($district);
/* Lecture des valeurs */ $stmt->fetch();
printf("%s est dans la région de %s\n", $city, $district);
/* Fermeture de la commande */ $stmt->close(); }
/* Fermeture de la connexion */ $mysqli->close(); ?>
|
| Style procédural |
<?php $link = mysqli_connect("localhost", "utilisateur", "mot_de_passe", "base");
/* Vérification de la connexion */ if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit(); }
$city = "Amersfoort";
/* Création d'une requête préparée */ $stmt = mysqli_stmt_init(); if ($stmt = mysqli_stmt_prepare($stmt, "SELECT Region FROM Ville WHERE Name=?")) {
/* Association des variables SQL */ mysqli_stmt_bind_param($stmt, "s", $city);
/* Exécution de la requête */ mysqli_stmt_execute($stmt);
/* Association des variables de résultats */ mysqli_stmt_bind_result($stmt, $district);
/* Lecture des valeurs */ mysqli_stmt_fetch($stmt);
printf("%s est dans la région de %s\n", $city, $district);
/* Fermeture de la commande */ mysqli_stmt_close($stmt); }
/* Fermeture de la connexion */ mysqli_close($link); ?>
|
L'exemple ci-dessus va afficher :
Amersfoort est dans la région de Utrecht
mysqli_stmt_init
,
mysqli_stmt_execute
,
mysqli_stmt_fetch
,
mysqli_stmt_bind_param
,
mysqli_stmt_bind_result
et
mysqli_stmt_close
.
|