【发布时间】:2012-05-30 11:39:58
【问题描述】:
我正在努力获得一些我认为应该很容易工作的东西。我创建了一个使用 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 和非基于类的脚本迁移。
【问题讨论】:
-
Here 一切都得到了很好的解释。
-
或查看本教程:phpro.org/tutorials/Introduction-to-PHP-PDO.html .. 我认为您在这里缺少的是 fetchAll
-
谢谢,fetchAll 已经成功了。不使用 PDO FETCH_INTO 或 FETCH_CLASS 是否有与 mysqli fetch_object() 等效的方法?
-
@PLB 文档显示可以添加此行以作为对象返回 $query->setFetchMode(PDO::FETCH_OBJ);在 fetch() 或 fetchAll() 之前
-
@MattP 是的,你可以这样做,但我不使用。