PDOStatement::bindParam
(no version information, might be only in CVS)
PDOStatement::bindParam --
指定された変数名にパラメータをバインドする
説明
bool
PDOStatement::bindParam ( mixed parameter, mixed &variable [, int data_type [, int length]] )
警告 |
この関数は、
実験的なステータスにあります。これは、この関数の
動作、関数名、ここで書かれていること全てがPHPの将来のバージョンで予告
なく変更される可能性があることを意味します。注意を喚起するとともに自分
のリスクでこの関数を使用してください。 |
指定された変数名に SQL 文パラメータをバインドします。
SQL 文パラメータは、名前付けされたプレースホルダ
もしくは疑問符プレースホルダのいずれかが可能です。
出力パラメータは、SQL 文が実行されたとき、バインドされた PHP
変数の値にデータベースによって返される値をセットします。これにより、
例えば機能をサポートするデータベースに対して、
出力もしくは入出力パラメータを用いてストアドプロシージャを
コールすることができます。
NULL でない入力専用変数に対しては、代わりに
PDOStatement::execute()
に入力値の配列を渡すことができます。
パラメータ
- parameter
パラメータ ID を指定します。名前付けされたプレースホルダを使った文に
対しては、:name 形式のパラメータ名となります。
疑問符プレースホルダを使った文に対しては、1 から始まるパラメータの
位置となります。
- variable
SQL 文パラメータにバインドする PHP 変数名を指定します。
- data_type
パラメータに対して PDO_PARAM_* 定数を使った明示的なデータ型を
指定します。ストアドプロシージャからの INOUT パラメータの場合、
data_type パラメータに PDO_PARAM_INPUT_OUTPUT
ビットを設定するためにビット OR を使用してください。
入力パラメータとして NULL 値が渡す場合、PDO_PARAM_NULL
定数を使用してください。
- length
データ型の長さを指定します。パラメータがストアドプロシージャからの
OUT パラメータであることを示す場合、
明示的に長さを設定しなければなりません。
例
例 1. 名前付けされたプレースホルダを用いてプリペアドステートメントを実行する
<?php /* バインドされた PHP 変数によってプリペアドステートメントを実行する */ $calories = 150; $colour = 'red'; $sth = $dbh->prepare('SELECT name, colour, calories FROM fruit WHERE calories < :calories AND colour = :colour'); $sth->bindParam(':calories', $calories, PDO_PARAM_INT); $sth->bindParam(':colour', $colour, PDO_PARAM_STR, 12); $sth->execute(); ?>
|
|
例 2.
疑問符プレースホルダを用いてプリペアドステートメントを実行する
<?php /* バインドされた PHP 変数によってプリペアドステートメントを実行する */ $calories = 150; $colour = 'red'; $sth = $dbh->prepare('SELECT name, colour, calories FROM fruit WHERE calories < ? AND colour = ?'); $sth->bindParam(1, $calories, PDO_PARAM_INT); $sth->bindParam(2, $colour, PDO_PARAM_STR, 12); $sth->execute(); ?>
|
|
例 3. プリペアドステートメントに NULL 値を渡す
<?php /* バインドされた PHP 変数によってプリペアドステートメントを実行する */ $calories = 150; $colour = 'red'; $sth = $dbh->prepare('SELECT name, colour, calories FROM fruit WHERE calories < :calories AND colour = :colour'); $sth->bindParam(':calories', $calories, PDO_PARAM_INT);
/* colour カラムが NULL である fruit を検索する */ $sth->bindParam(':colour', $colour, PDO_PARAM_NULL);
$sth->execute(); ?>
|
|
例 4. INOUT パラメータを持つストアドプロシージャをコールする
<?php /* INOUT パラメータを持つストアドプロシージャをコールする */ $colour = 'red'; $sth = $dbh->prepare('CALL puree_fruit(?)'); $sth->bindParam(1, $colour, PDO_PARAM_STR|PDO_PARAM_INPUT_OUTPUT, 12); $sth->execute(); print("After pureeing fruit, the colour is: $colour"); ?>
|
|
以下も参照ください
PDO::prepare() |
PDOStatement::execute() |