【发布时间】:2013-11-16 14:54:55
【问题描述】:
我正在尝试与 PDO 和 Singleton 类建立数据库连接,但我无法从数据库中获取数据。
我一直在阅读这篇文章,但我仍然不确定如何从另一个文件调用我的数据库文件中的 Singelton 类并打印出结果。
我现在遇到的错误是我的 db.php 文件中的Fatal error: Call to undefined function query(),这是我的数据库文件中的最后一个函数。但是我相信函数已经定义好了。
感谢任何帮助!
这是我的数据库(db.php)连接文件:
<?php
class Database
{
private $_db;
static $_instance;
private function __construct() {
$this->_db = new PDO('mysql:host=localhost;dbname=mvcuser', 'root', '');
$this->_db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
private function __clone(){}
public static function getInstance() {
if (!(self::$_instance instanceof self)) {
self::$_instance = new self();
}
return self::$_instance;
}
public function query($sql) {
return query($this->_db,$sql);
}
}
这是我的 index.php 文件中的代码:
<?php
require_once 'model/db.php';
$db = Database::getInstance();
$db->query('SELECT * FROM users');
if ($result = $db->query($query)) {
while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
echo $row;
}
}
【问题讨论】:
-
去掉
if,没有意义...做:$result = $db->query(...)... -
好的!但是我仍然遇到同样的错误:(
-
@HenriqueBarcelos,是的,
if确实有道理! -
没有意义的是两次调用
query,这就是我的意思...... -
并将上一行写为 $result = $db->query('SELECT * FROM users');