gpt4 book ai didi

PHP无法从mysql获取数据

转载 作者:行者123 更新时间:2023-11-29 23:04:48 25 4
gpt4 key购买 nike

我正在使用 PDO 连接到数据库。我的 Connect 类如下所示

class Connect {
private $error;
public static $dbh;
public $db;

public function __construct() {
$host = "127.0.0.1";
$dbName = "myproject";
$dbUser = "root";
$dbPass = "";

try {
$this->db = new PDO("mysql:host={$host};dbname={$dbName}", $dbUser, $dbPass);
$this->db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );

$query = $this->db->prepare("SET NAMES UTF8");
$query->execute();

} catch (PDOException $e) {
return $e->getMessage();
}

}
}

$connect = new Connect();

有时,当我尝试使用此类从 mysql 获取数据时,它可以工作,但有时却不能。

当我尝试转储整个类(class)时,我得到了这个

object(Connect)#3 (2) { ["error":"Connect":private]=> NULL ["db"]=> object(PDO)#4 (0) { } }

我不明白问题出在哪里。

最佳答案

首先从 __contsruct 函数中删除变量以避免硬编码。当您从此类创建新对象时,您可以传入数据库信息。

class Connect {
private $error;
public static $dbh;
public $db;

public function __construct($host,$database,$user,$password) {


try {
$this->db = new PDO("mysql:host=$host;dbname=$database", $user, $password);
$this->db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );
$query = $this->db->prepare("SET NAMES UTF8");
$query->execute();

} catch (PDOException $e) {
return $e->getMessage();
}

}
}

关于PHP无法从mysql获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28341643/

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