我运行下面的代码: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 语法中有错误;检查对应于你的MySQL服务器版本 的手册正确的语法使用近“NULL,10”位于第1' 行
它发生仅与此特定的查询。其他一切都可以。
顺便说一句:我知道它可能看起来很愚蠢,我做准备“代码内”值的语句。但这仅仅是一个例子。实际上,这些值取决于页码,但在这里并不重要 - 此查询也会给出相同的错误。
如果有人有兴趣,PHP的版本是:5.3.4RC2和MySQL的是:mysqlnd 5.0.7-dev的 - 091210 - $修订:304625 $
感谢您的回答。它现在有效。但还有一个问题 - 为什么第二个参数($ limit)在没有int转换的情况下工作正常?我的意思是,如果我的SQL查询就像'LIMIT X,Y'那么为什么只有** X **需要你提到的转换(因为** Y **工作正常)?它是指错误:)? – Wysiwyf
我不知道。喜欢那些臭虫:第。 – Arkh
哈哈,无论如何,谢谢。 – Wysiwyf