こんな感じに書くと false が返ってくる。
$num = 5; $sth = $dbh->prepare('SELECT * FROM `my_table` LIMIT :num'); $sth->bindValue(':num', $num); $sth->execute(); // false
$num の値が : num の中に文字列として展開されていることが原因。
データ型を指定するとうまくいく。
$sth = $dbh->prepare('SELECT * FROM `my_table` LIMIT :num'); $sth->bindValue(':num', $num, PDO::PARAM_INT); $sth->execute(); // データを取得できる
PDO 定義済み定数 | PHP
http://jp2.php.net/manual/ja/pdo.constants.php
参考
PHPのPDOでLIMIT句でエラーが発生した時の対処 | SUSH-i LOG
http://blog.sus-happy.net/201207/php-pdo-limit/
0 件のコメント:
コメントを投稿