PDOStatement::bindParam — パラメータを指定された変数名にバインドします (PHP 5 >= 5.1.0、PECL pdo >= 0.1.0)
bool PDOStatement::bindParam (mixed $parameter ,mixed &$variable [, int $data_type = PDO::PARAM_STR [, int $length [,mixed $driver_options ]]] )
PHP 変数を、前処理に使用される SQL ステートメント内の対応する名前付きプレースホルダーまたは疑問符プレースホルダーにバインドします。 PDOStatement::bindValue() とは異なり、この変数は参照としてバインドされており、PDOStatement::execute() が呼び出された場合にのみその値を受け取ります。
ほとんどのパラメータは入力パラメータです。つまり、パラメータはクエリを構築するために読み取り専用で使用されます。ドライバーによっては、ストアド プロシージャの呼び出しと出力パラメーターとしてのデータの返しをサポートするものや、データの送信と更新されたデータの受信の両方を入出力パラメーターとしてサポートするものもあります。
パラメーターパラメーターの識別子。名前付きプレースホルダーを使用する準備済みステートメントの場合、パラメーター名の形式は :name である必要があります。疑問符プレースホルダーを使用する準備済みステートメントの場合、パラメーターの位置は 1 から始まるインデックスを付ける必要があります。
variable SQL ステートメントのパラメータにバインドされた PHP 変数名。
data_type は、 PDO::PARAM_* 定数を使用してパラメータのタイプを明示的に指定します。ストアド プロシージャから INOUT パラメータを返すには、data_type パラメータのビット単位 OR 演算子を使用して PDO::PARAM_INPUT_OUTPUT ビットを設定します。
長さの事前割り当てのヒント。
driverdataデータ型の長さ。パラメーターがストアド プロシージャの OUT パラメーターであることを示すには、この長さを明示的に設定する必要があります。
ドライバーのオプション
成功した場合は TRUE を返し、失敗した場合は FALSE を返します。
<?php/* バインドされた PHP 変数を使用してプリペアド ステートメントを実行します*/$calers = 150;$colour = 'red';$sth = $dbh->prepare('SELECT 名前、色、カロリー FROM フルーツ WHERE カロリー < :カロリーAND color = :colour');$sth->bindParam(':カロリー', $カロリー, PDO::PARAM_INT);$sth->bindParam(':colour', $colour, PDO::PARAM_STR, 12);$sth->execute();?>
<?php/* バインドされた PHP 変数を使用して準備済みステートメントを実行します*/$calers = 150;$colour = 'red';$sth = $dbh->prepare('SELECT 名前、色、カロリー FROM フルーツ WHERE カロリー < ? AND color = ?');$sth->bindParam(1, $カロリー, PDO::PARAM_INT);$sth->bindParam(2, $colour, PDO::PARAM_STR, 12);$sth->execute();?>
<?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("果物をピューレにした後の色は: $color");?>