PDOStatement::bindValue

値をパラメータにバインドする

説明

public bool PDOStatement::bindValue(stringint $param, mixed $value, int $type = PDO::PARAM_STR)

プリペアドステートメントで使用する SQL 文の中で、 対応する名前あるいは疑問符のプレースホルダに値をバインドします。

パラメータ

param

パラメータ ID。名前つきプレースホルダを使用する プリペアドステートメントの場合は、 :name 形式のパラメータ名となります。 疑問符プレースホルダを使用するプリペアドステートメントの場合は、 1 から始まるパラメータの位置となります。

value

パラメータにバインドする値。

type

パラメータに対して PDO::PARAM_* 定数 を使った明示的なデータ型を指定します。

戻り値

成功した場合に true を、失敗した場合に false を返します。

エラー / 例外

PDO::ATTR_ERRMODEPDO::ERRMODE_WARNING に設定されていた場合、E_WARNING レベルのエラーが発生します。

PDO::ATTR_ERRMODEPDO::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