基本上,在我的localhost上一切正常。 这些是两种环境的php版本:
开发(localhost):5.5.3
生产:5.3.27
我一直在寻找兼容性问题但没有运气,这是我的最后一招。
代码段,它在开发中返回请求的数据但不在生产中:
function dbq($query, $array = array()) {
$core = Core::getInstance();
$STH = $core->dbh->prepare($query);
$sth = $STH->execute($array);
$res = $STH->fetchAll(PDO::FETCH_OBJ);
print_r($res);
}
之前成功建立连接,因此没有问题。 正如我之前所说,'$ res'在生产环境中返回空数组。
该函数由其他函数调用,例如:
function first() {
return $this->dbq("SELECT * FROM $this->class
ORDER BY id ASC LIMIT 1");
}
注意:第二个参数用于预准备语句,并不总是必需的。
答案 0 :(得分:1)
您可以使用$STH->debugDumpParams()
调试语句。 (documentation)
编辑:问题是由于MySQL列名称区分大小写或不敏感,具体取决于操作系统。 (reference)
答案 1 :(得分:0)
你是大写/小写错误:
$STH = $core->dbh->prepare($query);
$sth = $STH->execute($array);
不是$ sth和$ STH