PHP Data Objects (PDO) で以下のように書いています。
$setData = 1; $sql = sprintf('UPDATE %s SET valid_flag=:valid_flag WHERE id=:id', $this->name); $sth = $this->db->prepare($sql); $sth->bindParam(':valid_flag', $setData, PDO::PARAM_INT); $sth->bindParam(':id', $Id, PDO::PARAM_INT); $sth->execute();
セットする値を直接を入れられないかと以下のように試したところ
$sth->bindParam(':valid_flag', 1, PDO::PARAM_INT);
bindParam の2番目のパラメータに直接値を入れることはできず 以下のエラーが出ます。
Fatal error: Cannot pass parameter 2 by reference
説明には 「SQL ステートメントパラメータにバインドする PHP 変数名を指定します。」 と書いてあり、
一度PHP変数に入れてからセットすれば通ります。
★参考リンク