我正试图让一个极限查询工作。到目前为止,我已经证实了以下几点:
所有输入有效且正确。当手动运行mysql时,查询工作正常,值被转换为int。我甚至用int值替换了变量。
try {
$sql = "SELECT * FROM sensor_data WHERE sid=:sid ORDER BY id DESC LIMIT :starting_limit, :recordlimit";
$core = CoreDB::getInstance();
$sth = $core->dbh->prepare($sql);
$sth->execute(array(':sid' => $sensor->getID(), ':starting_limit' => (int)0, ':recordlimit' => (int)10));
// $sth->execute(array(':sid' => $sensor->getID()));
$results = $sth->fetchAll();
var_dump($sth->rowCount());
if ($sth->rowCount() > 0) {
foreach($results as $row){
$id = $row['id'];
var_dump($id);
}
}
}
catch(Exception $e){
}
如有任何建议,我们将不胜感激
1条答案
按热度按时间bq3bfh9z1#
我找到的唯一解决方案是手动绑定参数,而不是将它们放在execute方法的数组中。
如果有人知道如何让它在执行方法工作,请让我知道,我会更新答案。