PHP 5.2.1〜5.2.5 では、LIMIT句の値をなんかバインドとかすると動作しない そうです。
$sth = $dbh->prepare( 'SELECT * FROM some_table LIMIT :start, :limit' ); $sth->execute ( array ('start'=>0, 'limit'=>10 ) );
これが
SELECT * FROM some_table LIMIT '0', '10'
こんなんなっちゃうのでエラーになります、という話。
$start = 0; $limit = 10; $sth = $dbh->prepare( "SELECT * FROM some_table LIMIT $start, $limit" ); $sth->execute ();
*1
今のところ、こんなふうに書くしかないらしい。
PHP5.2.0では問題ない。 あと、PHP5.2.6では直っているっぽい。