$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
こっちは便利この上ない。