gpt4 book ai didi

PHP学院教程-查询方法

转载 作者:行者123 更新时间:2023-11-30 23:11:00 26 4
gpt4 key购买 nike

我最近开始观看这一系列教程 (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语句条件。

感谢您的宝贵时间!!

最佳答案

您的 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'));

关于PHP学院教程-查询方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19728414/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com