我有一个web服务,我在我的私人WAMP服务器上使用SLIM在PHP中开发,一切正常。当将它部署到我的webhotel时,msqli fetch_assoc似乎永远不会返回,我得到一个"响应不包含任何数据。"我确认它在fetch_assoc调用之前第一次put和echo之后就没有返回..然后在调用之后......并且在fetch_assoc之后放置时它从未点击我的echo。
我的私人网络服务器运行PHP 5.4.12和MySQL 5.6.12,而我的webhotel运行PHP 5.3.28和MYSQL 5.1.71。
我的网站主机是否需要升级他们的mysql服务器,因为我已经了解到这在某些mysql服务器版本中存在问题?
迫切需要帮助......谢谢
编辑1:
public function getUserByEmail($email) {
$stmt = $this->conn->prepare("SELECT name, email, api_key, status, created_at FROM user WHERE email = ?");
$stmt->bind_param("s", $email);
if ($stmt->execute()) {
//$user = $stmt->fetchAll(PDO::FETCH_ASSOC); echo "afas";
$user = $stmt->get_result()->fetch_assoc();
$stmt->close();
return $user;
} else {
return NULL;
}
}
答案 0 :(得分:1)
检查你的phpinfo()。我有mysqlnd,但只有PDO的表现。您可以通过查看mysqlnd部分下的API Extensions来判断(如果安装了mysqlnd)。
而不是在PDO中重写所有内容,这对我有用:
public function getUserByEmail($email) {
$stmt = $this->conn->prepare("SELECT name, email, api_key, status, created_at FROM users WHERE email = ?");
$stmt->bind_param("s", $email);
if ($stmt->execute()) {
$stmt->bind_result($name, $email, $api_key, $status, $created_at);
/* fetch values */
mysqli_stmt_fetch($stmt);
/* set values */
$user['name'] = $name;
$user['email'] = $email;
$user['api_key'] = $api_key;
$user['created_at'] = $created_at;
$stmt->close();
return $user;
} else {
return NULL;
}
}
答案 1 :(得分:0)
“get_result()仅在某些拥有mysqlnd驱动程序的系统上可用。”
所以我最终切换到PDO,这不需要对我的代码进行大量更改。