PDOStatement::bindValue
値をパラメータにバインドする
説明
public bool PDOStatement::bindValue(stringint $param
, mixed $value
, int $type
= PDO::PARAM_STR)
パラメータ
-
param
-
パラメータ ID。名前つきプレースホルダを使用する
プリペアドステートメントの場合は、
:name 形式のパラメータ名となります。
疑問符プレースホルダを使用するプリペアドステートメントの場合は、
1 から始まるパラメータの位置となります。
-
value
-
パラメータにバインドする値。
-
type
-
パラメータに対して
PDO::PARAM_*
定数
を使った明示的なデータ型を指定します。
戻り値
成功した場合に true
を、失敗した場合に false
を返します。
エラー / 例外
PDO::ATTR_ERRMODE
が PDO::ERRMODE_WARNING
に設定されていた場合、E_WARNING
レベルのエラーが発生します。
PDO::ATTR_ERRMODE
が PDO::ERRMODE_EXCEPTION
に設定されていた場合、PDOException がスローされます。
例
例1 名前付けされたプレースホルダを用いてプリペアドステートメントを実行する
<?php
/* バインドされた PHP 変数によってプリペアドステートメントを実行する */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < :calories AND colour = :colour');
/* カラム名を使ってパラメータの値を設定します */
$sth->bindValue('calories', $calories, PDO::PARAM_INT);
/* 名前の前にも、コロン ":" を付けることができます(オプション) */
$sth->bindValue(':colour', $colour, PDO::PARAM_STR);
$sth->execute();
?>
例2 疑問符プレースホルダを用いてプリペアドステートメントを実行する
<?php
/* バインドされた PHP 変数によってプリペアドステートメントを実行する */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < ? AND colour = ?');
$sth->bindValue(1, $calories, PDO::PARAM_INT);
$sth->bindValue(2, $colour, PDO::PARAM_STR);
$sth->execute();
?>
参考
- PDO::prepare
- PDOStatement::execute
- PDOStatement::bindParam