English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
mysqli_stmt_param_count()関数は、与えられた文のパラメータ数を返します。
mysqli_stmt_param_count()関数は(準備された)文オブジェクトを引数として受け取り、その中のプレースホルダー数を返します。
mysqli_stmt_param_count($stmt)
番号 | パラメータ及び説明 |
---|---|
1 | stmt(必須) これはSQLクエリを実行するための文のオブジェクトを表します。 |
PHP mysqli_stmt_param_count()関数は、与えられたプレースホルダーが含まれるプレースホルダー数を示す整数値を返します。
この関数は最初にPHPバージョン5のバージョンで導入され、すべての上位バージョンで使用できます。
仮にMySQLデータベースにemployeeという名前のテーブルが作成されており、以下のような内容になっています:
mysql> select * from employee; +------------+--------------+------+------+--------+ | FIRST_NAME | LAST_NAME | AGE | SEX | INCOME | +------------+--------------+------+------+--------+ | Vinay | Bhattacharya | 20 | M | 21000 | | Sharukh | Sheik | 25 | M | 23300 | | Trupthi | Mishra | 24 | F | 51000 | | Sheldon | Cooper | 25 | M | 2256 | | Sarmista | Sharma | 28 | F | 15000 | +------------+--------------+------+------+--------+ 5 rows in set (0.00 sec)
以下の例では示されています mysqli_stmt_param_count() 関数の使い方(手続き型スタイル)-
<?php $con = mysqli_connect("localhost", "root", "password", "mydb"); $stmt = mysqli_prepare($con, "UPDATE employee SET INCOME=INCOME-? WHERE INCOME>=?); mysqli_stmt_bind_param($stmt, "si", $reduct, $limit); $limit = 20000; $reduct = 5000; //ステートメントを実行 mysqli_stmt_execute($stmt); print("レコードが更新されました......\n"); //影響された行 $count = mysqli_stmt_param_count($stmt); //ステートメントを終了 mysqli_stmt_close($stmt); //接続を閉じる mysqli_close($con); print("影響された行 ".$count); ?>
出力結果
レコードが更新されました...... 影響された行 3
オブジェクト指向スタイルでは、この関数の文法は以下の通りです$stmt->param_count;。以下は、オブジェクト指向スタイルでのこの関数の例です;
<?php //接続を確立 $con = new mysqli("localhost", "root", "password", "mydb"); $con -> query("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(); //レコードが更新されました $count = $stmt ->param_count; print("パラメータ数: ".$count); //ステートメントを終了 $stmt->close(); //接続を閉じる $con->close(); ?>
出力結果
パラメータ数: 5