当我从PHP调用运行查询SELECT id FROM phr ORDER BY id LIMIT ?
时,我在查询日志中看到了带有绑定变量的正确查询语句,但是我收到以下错误;
数据库错误。 SQL是'sql'
错误是SQLSTATE [42000]:语法错误或访问冲突:1064 SQL语法中有错误;查看与MariaDB服务器版本对应的手册,以便在第1行的“20”附近使用正确的语法。
$limit = 20;
$phraseList = $phrases->getPhrases($limit);
function getPhrases($limit) {
$dbconnect = new PhrasePDO();
return $dbconnect->get_phrases($limit);
}
function get_phrases($limit) {
global $dbh;
$sql = 'SELECT id FROM phr LIMIT ?';
$data = array($limit);
$sth = $dbh->prepare($sql);
$ret = array();
try {
$sth->execute($data);
while($row = $sth->fetch(PDO::FETCH_NUM)){
array_push($ret, new Phrase($row[0]));
}
return $ret;
} catch (PDOException $e) {
$this->error($e, $sql);
}
}
由于语法没有任何问题(如果从命令行运行它可以正常工作)并且正确设置了绑定变量,那么查询语句还有什么问题呢?