PHP マニュアル
前のページ |  | 次のページ

# PDOStatement->bindParam()

(no version information, might be only in CVS)

PDOStatement->bindParam() -- 指定された変数名にパラメータをバインドする

## 説明

class PDOStatement {
bool bindParam ( mixed parameter, mixed &variable [, int data_type [, int length [, mixed driver_options]]] )
}

準備された SQL ステートメント中で、 対応する名前もしくは疑問符プレースホルダにパラメータをバインドします。 PDOStatement->bindValue() と異なり、 変数は参照としてバインドされ、PDOStatement->execute() がコールされたときのみ評価されます。

ほとんどのパラメータは入力パラメータです。つまり、クエリを構築する際、 パラメータは読み込み専用で使用されます。 いくつかのドライバは、出力パラメータとしてデータを返す ストアドプロシージャの実行をサポートしており、 またいくつかのドライバは、データを渡し更新された値を受け取る、 といった入出力パラメータもサポートしています。

## パラメータ

`parameter`

  パラメータ ID を指定します。名前付けされたプレースホルダを使った文に 対しては、`:name` 形式のパラメータ名となります。 疑問符プレースホルダを使った文に対しては、1 から始まるパラメータの 位置となります。

`variable`

  SQL ステートメントパラメータにバインドする PHP 変数名を指定します。

`data_type`

  パラメータに対して PDO::PARAM_* 定数を使った明示的なデータ型を 指定します。ストアドプロシージャからの INOUT パラメータの場合、 `data_type` パラメータに PDO::PARAM_INPUT_OUTPUT ビットを設定するためにビット OR を使用してください。

`length`

  データ型の長さを指定します。パラメータがストアドプロシージャからの OUT パラメータであることを示す場合、 明示的に長さを設定しなければなりません。

`driver_options`

## 返り値

成功した場合に `TRUE` を、失敗した場合に `FALSE` を返します。

## 例

例 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. 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()
PDOStatement->bindValue()

前のページ | ホーム | 次のページ
PDOStatement->bindColumn() | 上に戻る | PDOStatement->bindValue()