我对使用 PHP 和 MySQL 比较陌生,在使用以下代码时遇到了麻烦。
$stmt = $this->conn->prepare("SELECT * FROM users WHERE user_name = ?");
$stmt->bind_param("s", $username);
if ($stmt->execute()) {
$user = $stmt->get_result()->fetch_assoc();
$stmt->close();
return $user;
}
错误:
Call to undefined method mysqli_stmt::get_result() 是在运行此脚本时产生的,大概是由于 MAMP不支持 mysqlnd
。我试图弄清楚如何将 native 驱动程序安装到 MAMP,但它看起来不可能 - (我已经提交了错误报告并建议其他 MAMP 用户也这样做)。
下面一行似乎是问题所在:
$user = $stmt->get_result()->fetch_assoc();
任何人都可以建议一种产生相同结果但没有 mysqlnd
的替代方法吗?
非常感谢。
最佳答案
检查您的 phpinfo()。我有 mysqlnd,但只有 PDO 扩展。您可以通过查看 mysqlnd 部分下的 API 扩展来判断(如果安装了 mysqlnd)。
无需重写 PDO 中的所有内容,这对我有用:
$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;
}
关于php - MAMP:未定义的方法 mysqli_stmt::get_result(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23870965/