私は、次のコードを実行します。PDO MySQLの構文エラー1064
$conn = new PDO(....);
.... pdo attributes ...
$limitvalue = 0;
$limit = 10;
$sql = $conn->prepare("SELECT * FROM table1 LIMIT ?, ?");
$sql->bindParam(1, $limitvalue, PDO::PARAM_INT);
$sql->bindParam(2, $limit, PDO::PARAM_INT);
$sql->execute();
を、私は得る:
メッセージでキャッチされない例外 'PDOException'「SQLSTATE [42000]: 構文エラーまたはアクセス違反:1064あなたはSQL 構文でエラーがあります。それだけ、この特定のクエリで発生行1' で「10、NULL」
を近くで使用するために右の構文についてはMySQLサーバのバージョン に対応マニュアルを確認してください。それ以外はOKです。
Btw:私は "コード内"の値のために準備されたステートメントを行うのが馬鹿に見えるかもしれません。しかしそれはほんの一例です。実際、値はページ番号に依存しますが、ここでは重要ではありません。このクエリでも同じエラーが発生しています。 5.3.4RC2とMySQLのは、次のとおりです:誰もが興味を持っている場合は
、PHPのバージョンがあるmysqlnd 5.0.7-devの - 091210 - $リビジョン:304625 $
答えをありがとう。それは今働く。しかしもう1つの質問 - なぜ2番目のパラメータ($ limit)がint変換なしで正常に動作していますか?私のSQLクエリが 'LIMIT X、Y'のようなものであれば** X **だけがあなたが言及した変換を必要とするのはなぜですか(** Y **はうまく動作するので)それはバグを参照していますか:)? – Wysiwyf
私は分かりません。これらのバグが大好きです:p。とにかく、ありがとう、 – Arkh
笑。 – Wysiwyf