pdo LIMITをbindParamする

PHP

pdoでlimitをbindParamで設定しようとするとsyntaxエラーがでることがある。
原因はパラメータは文字列で渡されるためで、数値で必要な場合はbindParamで明示的にint型と言う必要がある。
これは単純に引数に数値型を渡してもだめ。

$limit = 10;
$query = ‘SELECT * FROM `table` LIMIT ?’;
$statement= $dbh->prepare( $query );
$statement->bindParam( 1, $limit, PDO::PARAM_INT );
$statement->execute();

また
Cannot pass parameter 2 by reference
当エラーはパラメータは変数じゃないとダメで、定数や値をそのまま入れた場合に発生する。定数や値をそのまま利用する場合はbindする必要ないかもしれないが、一旦変数に入れないといけない

カテゴリーPHP

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です