我对PHP很新,我发现很多函数都需要访问数据库。问题是我目前在每个页面顶部需要的文件中连接到数据库,如下所示:
$db = new mysqli("localhost", "my_user", "my_password", "world");
我发现的问题是,当我想在一个函数中访问它时,我必须将$ db变量传递给它...这样可以正常工作,但有更简单的方法吗?
答案 0 :(得分:0)
您可以将它们称为$db
对象上的函数,例如$db->query(...)
。
答案 1 :(得分:0)
看看doctrine。有一点上升,但它非常好。
否则将该代码放入包含文件中,并将include "db.php";
放入您的网页中。您最好有1个包含文件,可以为您提供网站所需的一切,并在那里添加$db
代码。
如果你真的想要快速而又肮脏,请将$db
设为全局,然后您可以随时随地访问它。这不是很好的编码实践。
答案 2 :(得分:0)
最简单(但不是最好)的方法是在每个函数中添加“global”关键字。例如:
$db = new mysqli("localhost", "my_user", "my_password", "world");
function foo() {
global $db;
$db->query(....
}
更好的方法是创建自己的类My_DB并将其定义为单例。然后,您将能够将db对象作为My_DB的实例调用。
class My_DB {
protected $_db = null;
protected static $instance = null;
protected function __construct() {
$this->_db = new mysqli("localhost", "my_user", "my_password", "world");
}
public static function getInstance() {
if (empty(self::$_instance)) {
self::$_instance = new self();
}
return self::$_instance;
}
}
然后在代码中的任何位置执行以下操作:
function foo() {
$db = My_DB::getInstance();
$db->query(....
}