我最近开始观看这一系列教程 ( http://www.youtube.com/playlist?list=PLfdtiltiRHWF5Rhuk7k4UAU1_yLAZzhWc ) 并在编写 DB 类时遇到了问题。这是第8个视频。
我的查询功能似乎无法正常工作。当显示“已连接”回显时,我可以成功连接到数据库。但是从不显示成功回声..
数据库.php:
<?php
class DB {
private static $_instance = null;
private $_pdo,
$_query,
$_error = false,
$_results,
$_count = 0;
private function __construct(){
try{
$db = new PDO('mysql:host='.config::get('mysql/host').';dbname='.config::get('mysql/db'), config::get('mysql/username'), config::get('mysql/password'));
echo '->Connected'.'<br />';
}
catch(PDOException $e){
die($e->getMessage());
}
}
public static function getInstance() {
if(!isset(self::$_instance)) {
self::$_instance = new DB();
}
return self::$_instance;
}
public function query($sql, $params = array()){
$this->_error = false;
if($this->_query = $this->_pdo->prepare($sql)) {
$x = 1;
if(count($params)){
foreach($params as $param){
$this->_query->bindValue($x, $param);
$x++;
}
}
if($this->_query->execute()){
echo 'Success';
}
}
}
}
你能发现我的错误吗?试图找到我的函数不起作用的地方,我设法理解查询函数的第一个 if 语句未验证。在 index.php 中,我使用与视频中相同的行:
DB::getInstance()->query('SELECT username FROM users WHERE username = ?', array('alex'));
所有数据库和表都已成功创建。我可以使用经典的 try catch bloc 和查询方法访问和执行 sql 查询。我特别不明白的是查询函数中的第一个if语句条件。
感谢您的时间 !!