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 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 秒)