php - MAMP:未定义的方法 mysqli_stmt::get_result()

标签 php mysql mamp

我对使用 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/

相关文章:

PHP 画廊,缩略图列表

php - 如何动态实现社交媒体分享按钮?

php - 过滤mysql查询结果

php - PHP 5.3 和 5.4 之间的闭包有什么区别?

php - 安装 Mongo PHP 扩展 (php_mongo.dll)

php - 使用 PHP 在 Memcached 中保存从数据库返回的巨大记录

php - Wordpress:自动更改 the_content 部分中的 URL

php - 如何在数组中插入当前日期

php - mysql与2个表或php的减法

dropbox - 可以从 Dropbox 中排除文件夹(即使它位于 Dropbox 文件夹中)?