$dsn="mysql://$db_username:$db_password@$db_hostname/$db_database";
global $mdb2;
$mdb2=MDB2::connect($dsn);
if (PEAR::isError($mdb2))
{
die($mdb2->getMessage());
}我这样做是为了连接到我的数据库,我把它放在一个单独的名为Connect.php的php文件中,并在我的所有页面上都需要它。
但是,当我必须在函数内部查询时,我必须将$mdb2作为参数传递给函数?这是正确的做法吗?
此外,我正在编写一个类,它将查询我的数据库。我不知道该怎么做(我不想把它当作一个参数)
我是否必须每次都重新建立连接(即,编写用于连接的函数)
您不能使连接持久且全局吗?
发布于 2011-06-09 06:03:05
您可以在所有页面上都要求使用文件Connect.php,并且需要使用该连接的每个函数都可以引用global变量$mdb2。
例如:
# In file Connect.php
<?php
$dsn="mysql://$db_username:$db_password@$db_hostname/$db_database";
$mdb2=MDB2::connect($dsn);
if (PEAR::isError($mdb2))
{
die($mdb2->getMessage());
}
#In any other file
<?php
require_once "Connect.php";
getUser($id) {
global $mdb2;
$mdb2->query("SELECT ....");
}另一种解决方案是使用Singleton Class访问数据库,以便有一个函数始终返回对$mdb2变量的引用。
当然,讨论Global or Singleton for database connection?是值得一读的。
https://stackoverflow.com/questions/6285400
复制相似问题