【发布时间】:2014-11-21 08:33:51
【问题描述】:
我是 PDO 的初学者。我正在关注学习 PDO 的教程。我想使用一个简单的 select 语句来获取用户的 id。
但是当我运行 index.php 时,它不显示任何 echo !我哪里错了?
我有四个文件:
config => 设置用户名和密码...
DB_Connect :
class DB_Connect {
// constructor
function __construct() {
}
// destructor
function __destruct() {
// $this->close();
}
// Connecting to database
public function connect() {
require_once 'include/config.php';
try {
$hostname = DB_HOST ;
$dbname = DB_DATABASE;
$dbh = new PDO("mysql:host=$hostname;dbname=$dbname", DB_USER, DB_PASSWORD);
}
catch(PDOException $e)
{
echo $e->getMessage();
}
return $dbh;
}
}
DB_Functions:
class DB_Functions {
private $db;
//put your code here
// constructor
function __construct() {
require_once 'DB_Connect.php';
// connecting to database
$this->db = new DB_Connect();
$this->db->connect();
}
// destructor
function __destruct() {
}
function getUsers(){
$sql = "SELECT * FROM users";
foreach ($this->$db->query($sql) as $row)
{
echo $row->id;
}
/*** close the database connection ***/
// $db = null;
}
}
index.php
<?php
require_once 'include/DB_Functions.php';
$qr = new DB_Functions();
$qr->getUsers();
?>
【问题讨论】:
-
$this->$db->query($sql)到$this->db->query($sql) -
我改成db了,但是还没有输出。
-
你的数据库有连接吗?您是以对象还是数组的形式获取结果?试试
var_Dump($row) -
尝试在页面顶部添加
error_reporting(E_ALL); ini_set('display_errors', '1');,看看你得到了什么错误 -
所以很明显没有建立到数据库的连接。调试那个连接部分,看看是否所有的值 uname、pass、host、dbname 等都设置正确。