gpt4 book ai didi

php - PDO 和 Singleton 类的数据库连接

转载 作者:可可西里 更新时间:2023-11-01 13:12:10 24 4
gpt4 key购买 nike

我正在尝试与 PDO 和 Singleton 类建立数据库连接,但我无法从数据库中获取数据。

我一直在阅读这方面的内容,但我仍然不确定如何从另一个文件调用我的数据库文件中的 Singelton 类并打印出结果。我现在遇到的错误是 Fatal error: Call to undefined function query() 在我的 db.php 文件中,这是我的数据库文件中的最后一个函数。但是我相信该功能已定义。

感谢任何帮助!

这是我的数据库 (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;
}
}

最佳答案

Database::query 方法的定义没有意义。看起来您正在调用一些 PHP 函数 query(它不存在),因此您得到了错误。
我认为您可能希望将方法的定义更改为:

public function query($sql) {
return $this->_db->query($sql);
}

更新:并在您的 index.php

$db = Database::getInstance();
$statement = 'SELECT * FROM users';

if ($result = $db->query($statement)) {
while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
echo $row;
}
}

关于php - PDO 和 Singleton 类的数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20019812/

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