English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP基本教程

PHP上級教程

PHP & MySQL

PHPリファレンスマニュアル

PHP mysqli_stmt_reset()関数の用法および例

PHP MySQLi 参考マニュアル

mysqli_stmt_reset()関数は準備されたクエリをリセットします

定義および用法

mysqli_stmt_reset()関数は準備されたクエリのオブジェクト(既にオープンされている)をパラメータとして受け取り、それをリセットします。つまり、エラーをリセットし、未バッファリングされた結果セットと送信されたデータをリセットします。クエリ、バインド、およびストレージされた結果セットは変更されません。

構文

mysqli_stmt_reset($stmt);

パラメータ

序号パラメータおよび説明
1

con(必須)

これは準備されたクエリのオブジェクトを表します。

返り値

PHP mysqli_stmt_reset()関数は布尔値を返し、成功時はtrue、失敗時はfalse

PHPバージョン

この関数は最初にPHPバージョン5で導入され、すべてのより高いバージョンで使用できます。

オンラインサンプル

以下の例では、mysqli_stmt_reset()関数の使い方(手続き型スタイル)-

<?php
   
   255), Last_Name VARCHAR(255), Place_Of_Birth VARCHAR(255), Country VARCHAR(255))");
   print("テーブルの作成.....\n");
   mysqli_query($con, "INSERT INTO myplayers values(1Sikhar, Dhawan, Delhi, India))
   mysqli_query($con, "INSERT INTO myplayers values(2, 'Jonathan', 'Trott', 'CapeTown', 'SouthAfrica')");
   print("插入記録.....\n");
   //テーブルの内容を検索します
   $stmt = mysqli_prepare($con, "SELECT * FROM myplayers");
   //ステートメントを実行
   mysqli_stmt_execute($stmt);
   $res = mysqli_stmt_reset($stmt);
   if($res){
      print("重置成功");	
   }
   //結果の値を変数にバインドします
   $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");
   }
   //ステートメントを終了
   mysqli_stmt_close($stmt);
   //接続を閉じる
   mysqli_close($con);
?>

出力結果

レコードを挿入.....
リセット成功

私たちがその文を中間でリセットしたため、reset関数がなくても結果の内容が印刷されません。このプログラムは以下の結果を出力します-

レコードを挿入.....
リセット 成功
E:\PHPExamples>php procedure_oriented.php
テーブルの作成.....
レコードを挿入.....
Id: 1
fname: Sikhar
lname: Dhawan
pob: Delhi
country: India
Id: 2
fname: Jonathan
lname: Trott
pob: CapeTown
country: SouthAfrica

オンラインサンプル

オブジェクト指向スタイルでは、この関数の文法は以下の通りです$stmt-> close();。以下は、オブジェクト指向スタイルでのこの関数の例です;

<?php
   //接続を建立します
   $con = new mysqli("localhost", "root", "password", "mydb");
   //テーブルの作成
   $con -> query("CREATE TABLE players(ID INT, First_Name VARCHAR(255), Last_Name VARCHAR(255), Place_Of_Birth VARCHAR(255), Country VARCHAR(255))");
   print("テーブルの作成.....\n");
   //プレースホルダーを使用して値を挿入
   $stmt = $con -> prepare( "INSERT INTO players values(?, ?, ?, ?, ?)");
   $res = $stmt->reset();
   if($res){
      print("リセット 成功");	
   }
   //バインド値をパラメータマーカーに結合
   $stmt -> bind_param("issss", $id, $fname, $lname, $pob, $country);
   $id = 1;
   $fname = 'Shikhar';
   $lname = 'Dhawan';
   $pob = 'Delhi';
   $country = 'India';
   //ステートメントを実行
   $stmt->execute();
   //ステートメントを終了
   $stmt->close();
   //接続を閉じる
   $con->close();
?>

出力結果

テーブルの作成.....
リセット 成功

そしてプレイヤーテーブルの内容は空になります-

mysql> drop table players;
クエリ OK, 影響された行数 0 (0.26 sec)

reset()関数を削除し、上記のプログラムを実行すると、playersテーブルの内容は以下のようになります:

mysql> select * from players;
+------+------------+-----------+----------------+---------+
| ID   | First_Name | Last_Name | Place_Of_Birth | Country |
+------+------------+-----------+----------------+---------+
|    1 | Shikhar    | Dhawan    | Delhi          | India   |
+------+------------+-----------+----------------+---------+
1 セット内の行 (row) (0.00 秒)

PHP MySQLi 参考マニュアル