揮発性のメモ2

http://d.hatena.ne.jp/iww/

PDOStatement->execute()

$sth->execute($array) のような使い方をするとき、$arrayに余計なものが入ってると実行されない。ケチだ。

$o['a']=1;
$o['b']=2;
$o['c']=3;
$sth = $dbh->prepare( 'INSERT INTO hoge SET a=:a,b=:b' );
$result = $sth->execute($o);
Warning: PDOStatement::execute() [function.PDOStatement-execute]: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in /home/tekito/project/hoge/hoge.php on line 57


連想配列を使うとき、プレフィックスのコロンを書き忘れていたのに正常動作するから
なんで正常に動いてしまうんだと思ったら、そういう仕様だった。
PHP: PDOStatement::execute - Manual
こっちは便利この上ない。