0

我正在努力获得一些我认为应该很容易工作的东西。我创建了一个使用 PDO 连接到数据库的类,并希望最初只创建一个函数来将直接 SQL 查询传递给它。

class PDO_MySQL
{
    private $_db;
    private $connection_string;

    public function __construct()
    {
        $this->_db = new PDO($this->connection_string, DB_USERNAME, DB_PASSWORD);
    }
    public function DB_Query($sql)
    {
        $query = $this->_db->query($sql);
        return $query;
    }
}

然后在我的代码中:

$db = new PDO_MySQL();
$people = $db->DB_Query("SELECT * FROM about_us");
print_r($people);

但这又回来了

PDOStatement Object ( [queryString] => SELECT * FROM about_us )

当我正在寻找它以返回结果集时。

连接字符串已设置并且连接很好我刚刚删除了这篇文章的多余代码。

第二个问题,这是最好的方法吗?我正在从 MySQLi 和非基于类的脚本中迁移出来。

4

1 回答 1

1

代替

public function DB_Query($sql)
{
    $query = $this->_db->query($sql);
    return $query;
}

你所要做的:

public function DB_Query($sql)
{
    $query = $this->_db->prepare($sql);
    $query->execute();
    return $query->fetchAll();
}

因为

PDO::query — 执行 SQL 语句,将结果集作为 PDOStatement 对象返回

于 2012-05-30T11:48:37.363 回答