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

PHP基礎教程

PHP上級教程

PHP & MySQL

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

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

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

mysqli_stmt_execute()関数は準備されたクエリを実行します。

定義と使用法

mysqli_stmt_execute()関数は、prepare()関数で作成された準備されたステートメントオブジェクトを受け取り、それを実行します。実行中に、存在するすべてのパラメータマークは適切なデータに自動的に置き換わります。

この関数の後にmysqli_stmt_affected_rows()関数(UPDATE、DELETE、INSERTクエリの場合)を呼び出すと、影響を受けた行数を取得します。同様に、mysqli_stmt_fetch()関数(SELECTの場合)を呼び出すと、結果セットが返されます。

構文

mysqli_stmt_execute($stmt);

パラメータ

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

必要なコンテンツ

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

返り値

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

PHPバージョン

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

オンラインサンプル

MySQLデータベースにemployeeという名前のテーブルが作成されており、以下の内容になっていると仮定します:

mysql> select * from employee;
+------------+--------------+------+------+--------+
| FIRST_NAME | LAST_NAME        | AGE        | SEX        | INCOME        |
+------------+--------------+------+------+--------+
| Vinay          | Bhattacharya        |   20 | M        |  16000 |
| Sharukh        | Sheik                |   25 | M        |  18300 |
| Trupthi        | Mishra               |   24 | F        |  36000 |
| Sheldon        | Cooper               |   25 | M        |  12256 |
| Sarmista        | Sharma               |   28 | F        |  15000 |
+------------+--------------+------+------+--------+
5 rows in set (0.00 sec)

以下の例では、mysqli_stmt_execute()関数の使用方法(手続き型スタイル)、実行およびプレースホルダー付きのupdate文:

<?php
   $con = mysqli_connect("localhost", "root", "password", "mydb");
   $stmt = mysqli_prepare($con, "UPDATE employee set INCOME=INCOME-? where INCOME > ?");
   mysqli_stmt_execute($stmt, "si", $reduct, $limit);
   $limit = 16000;
   $reduct = 5000;
   //ステートメントを実行
   mysqli_stmt_execute($stmt);
   print("レコードが更新されました......\n");
   //ステートメントを終了
   mysqli_stmt_execute($stmt);
   //接続を閉じる
   mysqli_close($con);
?>

結果を出力

レコードが更新されました......

上記のプログラムを実行した後、employee表の内容は以下の通りです:

mysql> select * from employee;
+------------+--------------+------+------+--------+
| FIRST_NAME | LAST_NAME        | AGE        | SEX        | INCOME        |
+------------+--------------+------+------+--------+
| Vinay          | Bhattacharya        |   20 | M        |  16000 |
| Sharukh        | Sheik                |   25 | M        |  13300 |
| Trupthi        | Mishra               |   24 | F        |  31000 |
| Sheldon        | Cooper               |   25 | M        |  12256 |
| Sarmista        | Sharma               |   28 | F        |  15000 |
+------------+--------------+------+------+--------+
5 rows in set (0.00 sec)

オンラインサンプル

オブジェクト指向スタイルでは、この関数の構文は以下の通りです$stmt-> execute();。以下は、オブジェクト指向スタイルでのこの関数の例です。実行およびプレースホルダー付きのinsert文

<?php
   //接続の確立
   $con = new mysqli("localhost", "root", "password", "mydb");
   //テーブルの作成
   $con -> クエリ「CREATE TABLE myplayers(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 myplayers values(?, ?, ?, ?, ?)");
   $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();
?>

結果を出力

テーブルの作成.....

オンラインサンプル

以下のように実行することもできますmysqli_stmt_prepare()関数で作成されたステートメント   -

<?php
   $con = mysqli_connect("localhost", "root", "password", "mydb");
   $query = "CREATE TABLE Test(Name VARCHAR(255), AGE INT)"; 
   mysqli_query($con, $query);
   print("テーブルの作成.....\n");
   //ステートメントの初期化
   $stmt = mysqli_stmt_init($con);
   mysqli_stmt_prepare($stmt, "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);
?>

結果を出力

テーブルの作成.....
レコードを挿入.....

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