我最近开始阅读本系列教程(http://www.youtube.com/playlist?list=PLfdtiltiRHWF5Rhuk7k4UAU1_yLAZzhWc),在编写DB类时遇到了一个问题。它在第八个视频中。
我的查询功能似乎不太好用。当显示“已连接”回显时,我可以成功地连接到数据库。但是从来不会显示成功的回声。
DB.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和query方法来访问和执行sql查询。我特别不理解的是查询函数中的第一个if语句条件。
感谢您的宝贵时间!!
发布于 2013-11-01 22:13:30
您的PDO对象存储在构造函数的局部变量($db)中。而应将其分配给属性($_pdo),因为您的query()方法正在调用$this->_pdo->prepare()。
$this->_pdo = new PDO('mysql:host='.config::get('mysql/host').';dbname='.config::get('mysql/db'), config::get('mysql/username'), config::get('mysql/password'));发布于 2016-08-30 01:03:56
__construct()中的问题
错误:_construct()
右图是:__construct()
私有函数__construct() { try { $this->_pdo =新密码配置::get(‘mysql/用户名’),配置::get(‘mysql/ PDO('mysql:host='.Config::get('mysql/host').';dbname='.Config::get('mysql/db'),’) );echo 'connected';} catch(PDOException $e) { die($e->getMessage());}}
发布于 2015-05-22 01:09:54
尝试复制/粘贴此代码。
<?php
class DB {
private static $_instance = null;
private $_pdo, $_query, $_error = FALSE, $_results, $_Count = 0;
private function __construct() {
try {
$this -> _pdo = new PDO('mysql:host=' . config::get('mysql/host') . ';dbname=' . config::get('mysql/db'), config::get('mysql/username'), config::get('mysql/password'));
echo "Conectat";
} catch(PDOExeption $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';
}
}
}
}https://stackoverflow.com/questions/19728414
复制相似问题