PHP PDO Fetch_Assoc 未正确返回

标签 php pdo

我已经搜索过了,也许我正在搜索错误的东西,但我需要以下代码的帮助。我一定是错过了什么......

数据库类:

    class Database {
    private static $link = null;

    private static function dbLink() {
        if(self::$link) {
            return self::$link;
        }

        $dsn = null;

        switch(DB_DRVR) {
            case 'mysql':
                $dsn = DB_DRVR . ":host=" . DB_HOST . ";dbname=" . DB_NAME;
                break;
        }

        self::$link = new PDO($dsn, DB_USER, DB_PASS);

        return self::$link;
    }

    public static function fetchAssoc($sql) {
        $stmt = self::query($sql);
        $result = array();

        $result = $stmt->fetch(PDO::FETCH_ASSOC);

        return $result;
    }

    public static function __callStatic($name, $arguments) {
        $callback = array(self::dbLink(), $name);
        return call_user_func_array($callback, $arguments);
    }
}

部分代码返回错误:

        $sql = "SELECT group FROM users WHERE username='ryan';";
        $dbSQL = Database::fetchAssoc($sql);

        echo $dbSQL['group'];

数据库设置:

  • id(auto_increment, primary)
  • name(tinytext)
  • username(tinytext)
  • password(tinytext)
  • salt(tinytext)
  • email(tinytext)
  • group(tinytext)
  • privileges(tinytext)

我收到以下错误:

Fatal error: Call to a member function fetch() on a non-object
in C:\public_html\kernel\database.php on line 38

但是奇怪的是,如果我将 SQL 更改为:

$sql = "SELECT * FROM users WHERE username='ryan';";

我没有收到错误,它正确显示,如果我将 SQL 语句更改为:

$sql = "SELECT username FROM users WHERE username='ryan';";

并调用 $dbSQL['username'] 使用上面的函数它工作正常。

我的问题:为什么当我尝试使用我的 $dbSQL 数组中的“组”列时,我收到错误,但是当我尝试使用“用户名”列时,一切运行正常。我错过了什么?

谢谢, 瑞安

最佳答案

SELECT `group` FROM users WHERE username='ryan'

关于PHP PDO Fetch_Assoc 未正确返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11064182/

相关文章:

php - Zend 框架中 PDO 内存不足

php - PDO 和 MySQL 'between'

php - 没有使用 Facebook 调试器进行抓取

php - MYSQL如何在标签之间搜索特定的词

php - pdo mysql 使用计数

php - 随机 <a> 标签不会消失

javascript - PHP发送邮件功能。如何使一个电子邮件地址收到一封包含基于表格中勾选复选框数量的数据的电子邮件

php - 插入空闲id MYSQL

php - 根据特定的列值选择所有相同的列php pdo mysql

php - PDO 连接在真实服务器 PDO->__construct/LINUX 与 WINDOWS 服务器上失败