English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
mysqli_stmt_reset()函数重置预处理语句
mysqli_stmt_reset()函数接受一个准备好的语句对象(先前已打开)作为参数,并对其进行重置,即它更改会重置错误,未缓冲的结果集和发送的数据。查询,绑定和存储的结果集将不会更改。
mysqli_stmt_reset($stmt);
序号 | 参数及说明 |
---|---|
1 | con(必需) 这是表示准备好的语句的对象。 |
PHP mysqli_stmt_reset()函数返回一个布尔值,成功时为true,失败时为false。
此函数最初是在PHP版本5中引入的,并且可以在所有更高版本中使用。
以下示例演示了mysqli_stmt_reset()函数的用法(面向过程风格)-
<?php $con = mysqli_connect("localhost", "root", "password", "mydb"); mysqli_query($con, "CREATE TABLE myplayers(ID INT, First_Name VARCHAR(255), Last_Name VARCHAR(255), Place_Of_Birth VARCHAR(255), Country VARCHAR(255))"); print("Création de la table.....\n"); mysqli_query($con, "INSERT INTO myplayers values(1'; 'Sikhar', 'Dhawan', 'Delhi', 'India'); mysqli_query($con, "INSERT INTO myplayers values(2, 'Jonathan', 'Trott', 'CapeTown', 'SouthAfrica')"); print("Insérer un enregistrement.....\n"); //Récupérer le contenu de la table $stmt = mysqli_prepare($con, "SELECT * FROM myplayers"); //Exécuter l'instruction mysqli_stmt_execute($stmt); $res = mysqli_stmt_reset($stmt); if($res){ print("Réinitialisation réussie"); } //Lier les valeurs du résultat aux variables $res = mysqli_stmt_bind_result($stmt, $id, $fname, $lname, $pob, $country); while (mysqli_stmt_fetch($stmt)) { print("Id: ").$id."\n"); print("fname: ").$fname."\n"); print("lname: ").$lname."\n"); print("pob: ").$pob."\n"); print("country: ").$country."\n"); print("\n"); } //Terminer l'instruction mysqli_stmt_close($stmt); //Fermer la connexion mysqli_close($con); ?>
Résultat de la sortie
Insérer un enregistrement..... Réinitialisation réussie
Comme nous avons réinitialisé cette instruction au milieu, le contenu du résultat ne sera pas affiché sans fonction reset, ce programme génère le suivant en sortie-
Insérer un enregistrement..... Reset Successful E:\PHPExamples>php procedure_oriented.php Création de la table..... Insérer un enregistrement..... Id: 1 fname: Sikhar lname: Dhawan pob: Delhi country: India Id: 2 fname: Jonathan lname: Trott pob: CapeTown country: SouthAfrica
Dans un style orienté objet, la syntaxe de cette fonction est$stmt-> close();。Voici un exemple de cette fonction dans un style orienté objet ;
<?php //Établir une connexion $con = new mysqli("localhost", "root", "password", "mydb"); //Création d'une table $con -> query("CREATE TABLE players(ID INT, First_Name VARCHAR(255), Last_Name VARCHAR(255), Place_Of_Birth VARCHAR(255), Country VARCHAR(255))"); print("Création de la table.....\n"); //Insérer des valeurs dans la table en utilisant une instruction préparée $stmt = $con -> prepare("INSERT INTO players values(?, ?, ?, ?, ?"); $res = $stmt->reset(); if($res){ print("Reset Successful"); } //Liage de valeurs aux marqueurs de paramètres $stmt -> bind_param("issss", $id, $fname, $lname, $pob, $country); $id = 1; $fname = 'Shikhar'; $lname = 'Dhawan'; $pob = 'Delhi'; $country = 'India'; //Exécuter l'instruction $stmt->execute(); //Terminer l'instruction $stmt->close(); //Fermer la connexion $con->close(); ?>
Résultat de la sortie
Création de la table..... Reset Successful
et le contenu de la table des joueurs sera vide-
mysql> drop table players; Query OK, 0 rows affected (0.26 sec)
Si vous supprimez la fonction reset() et exécutez le programme ci-dessus, le contenu de la table players sera comme suit :
mysql> select * from players; +------+------------+-----------+----------------+---------+ | ID | First_Name | Last_Name | Place_Of_Birth | Country | +------+------------+-----------+----------------+---------+ | 1 | Shikhar | Dhawan | Delhi | Inde | +------+------------+-----------+----------------+---------+ 1 row in set (0.00 sec)