在PHP函数中打开DB连接

在PHP函数中打开DB连接,php,mysql,include,global,whmcs,Php,Mysql,Include,Global,Whmcs,很久以前,我为我们的WHMCS计费系统编写了一个插件模块,我们最近意识到它导致了一些问题。本质上,每个模块的PHP文件都是加载的,不管它是否被实际使用,这就是他们的“钩子”系统的设置方式 在编写模块时,我在全局空间的顶部包含了我的“db_config.php”文件,我现在意识到这会导致这个数据库加载每个页面,并且显然是在不应该的时候写入的。在这种情况下,我希望在函数顶部打开数据库连接,并在函数末尾关闭它 我以前从未见过这样做,也找不到太多关于它的信息。我的db_config.php的内容如下所示

很久以前,我为我们的WHMCS计费系统编写了一个插件模块,我们最近意识到它导致了一些问题。本质上,每个模块的PHP文件都是加载的,不管它是否被实际使用,这就是他们的“钩子”系统的设置方式

在编写模块时,我在全局空间的顶部包含了我的“db_config.php”文件,我现在意识到这会导致这个数据库加载每个页面,并且显然是在不应该的时候写入的。在这种情况下,我希望在函数顶部打开数据库连接,并在函数末尾关闭它

我以前从未见过这样做,也找不到太多关于它的信息。我的db_config.php的内容如下所示,我想知道是否可以在函数中包含_once()

<?php

// Connection's Parameters
$hostname = "xxx.xxx.xxx.xxx";
$database = "database";
$username = "username";
$password = "password";

// Connection
$tca_conn = mysql_connect($hostname, $username, $password);

if(!$tca_conn)
{
    die('Cannot Establish Connection to Database : ' . mysql_error());
}

$tca_db = mysql_select_db($database, $tca_conn);

if (!$tca_db)
{
    die ('Cannot Select Database : ' . mysql_error());
}

?>

试试这个。它可能适合你

$tca_db = mysql_select_db($database);
而不是

$tca_db = mysql_select_db($database, $tca_conn);

问题是WHMCS已经打开了一个到自己数据库的持久MYSQL连接,所以我创建了$tca_conn变量来引用这个变量。在模块中,我随后使用$GLOBALS[“tca_conn”]调用它,但显然这不足以将其分开。您可以创建1个“parameter.ini”文件,并将所有与数据库相关的详细信息作为参数放入其中。通过解析参数在“main.php”中调用这些参数。