gpt4 book ai didi

php - PDO:在哪里声明数据库连接?

转载 作者:行者123 更新时间:2023-11-29 01:41:43 25 4
gpt4 key购买 nike

我刚开始使用 PDO,想知道如何最好地声明数据库连接?

最好的做法是创建如下脚本,例如名为 config.php

config.php

<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass, array(
PDO::ATTR_PERSISTENT => true
));
?>

然后有example.class.php

<?php
include config.php;
class Example {
public function fetch() {
$data = $dbh->query('SELECT * FROM myTable WHERE name = ' . $conn->quote($name));
// do stuff
}

}
?>

我所有的类(class)都这样做吗?或者这会建立多个连接吗?我希望连接尽可能少。

最佳答案

你很接近,但你的 fetch 函数将无法工作,因为 $dbh 超出了它的范围。

您可以将其全局化,但更好的解决方案是在实例化时将您的处理程序传递给您的类

class Example {
/** @var \PDO */
protected $pdo;

public function __construct(\PDO $pdo) {
$this->pdo = $pdo;
}
}
$class = new Example($dbh);

这是最佳实践。这样,设置和命名数据库指针的逻辑就无关紧要了。您的类定义了它将如何接收它,并且您使用传递给您的指针的实例。

关于php - PDO:在哪里声明数据库连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19365135/

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