English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
mysqli_prepare()関数はSQL文の実行に準備を整えます。
mysqli_prepare()関数はSQL文の実行に準備を整え、ステートメントハンドルを返します。このハンドルに対して後続の操作を行うことができます。このクエリではパラメータマーク(「?」)を使用して値を指定し、後に実行することができます。
ここでは単一のSQL文のみをサポートし、複数のSQL文をサポートしていません。
SQL文の実行前に、mysqli_stmt_bind_param()関数を使用して占位符パラメータをバインドする必要があります。同様に、結果を取得する前に、mysqli_stmt_bind_result()関数を使用して返される列値をバインドする必要があります。
mysqli_prepare($con, $str);
序号 | パラメータ及び説明 |
---|---|
1 | con(必須) MySQL Serverとの接続を表すオブジェクトです。 |
2 | str(必須) 指定する必要があるクエリの文字列値です。 |
成功の場合、この関数は statement オブジェクトを返します。失敗した場合、返します。false。
この関数は最初にPHPバージョン5で導入され、すべてのより高いバージョンで使用できます。
以下の例では、mysqli_prepare()関数の使い方(手続き型スタイル)-
<?php $con = mysqli_connect("localhost", "root", "password", "mydb"); $query = "CREATE TABLE Test(Name VARCHAR(255), AGE INT)"; mysqli_query($con, $query); print("テーブルを作成... "); $stmt = mysqli_prepare($con, "INSERT INTO Test values(?, ?)"); mysqli_stmt_bind_param($stmt, "si", $Name, $Age); $Name = 'Raju'; $Age = 25; print("レコードを挿入..."); //ステートメントを実行 mysqli_stmt_execute($stmt); //ステートメントを終了 mysqli_stmt_close($stmt); //接続を閉じる mysqli_close($con); ?>
結果を出力
テーブルを作成... レコードを挿入...
テーブルの内容を確認する場合、以下のように、$減号;
mysql> select * from test; +------+------+ | Name | AGE | +------+------+ | Raju | 25 | +------+------+ 1 row in set (0.00 sec)
面向オブジェクトのスタイルでは、この関数の構文は以下の通りです$ con-> prepare();。以下は、面向オブジェクトスタイルの$ minusのThis関数の例です;
<?php //接続を確立 $con = new mysqli("localhost", "root", "password", "mydb"); $query = "CREATE TABLE Test(Name VARCHAR(255), AGE INT)"; $con -> query($query); print("テーブルを作成... "); $stmt = $con -> prepare( "INSERT INTO Test values(?, ?)"); $stmt -> bind_param("si", $Name, $Age); $Name = 'Raju'; $Age = 25; print("レコードを挿入..."); //ステートメントを実行 $stmt->execute(); //ステートメントを終了 $stmt->close(); //接続を閉じる $con->close(); ?>
結果を出力
テーブルを作成... レコードを挿入...