<分区>
所以我对 PHP 还很陌生,几乎没有问题。所以我有一个包含标题页和功能页的主索引页。在索引页面的正文中,我调用了几个函数。
在我的 header 包含中,我有我的数据库连接,它与索引页一起加载。在我的每个函数中,我都没有调用新的数据库连接,因为我认为标题中的数据库连接在我的函数运行时会保持打开状态。好吧,即使在 header 中打开了数据库连接,但在调用需要数据库访问的函数时,我收到一条错误消息(数据库连接失败)。
所以我为我的每个函数添加了一个数据库连接,它工作正常。我的问题是,当页面通过标题加载时,我正在打开一个数据库连接。然后我在调用每个函数时打开另一个连接,这可能是此页面上的 3-5 个数据库连接调用。
这对我来说似乎效率不高。这是正确的方法(在每个函数中调用一个连接)还是有一个解决方案/最佳实践,这样我每页只打开一个数据库连接,而不管调用的函数数量如何?同样,当我从函数本身删除连接时,我失败了。我的连接函数如下所示:
function wm_connectToDatabase () {
$dbhost = "xxx";
$dbuser = "xxx";
$dbpass = "xxx";
$dbname = "xxx";
$dbconnection = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
if(mysqli_connect_errno()){
die("Connection Failed: ". mysqli_connect_error() ."(". mysqli_connect_errno() .")");
} else {
echo "</br>Connection Success</br>";
}
return $dbconnection;
}
所以我的标题在索引加载时调用这个函数。然后我的每个函数都像这样再次调用它:
function fctn1($table){
$db = wm_connectToDatabase ();
...function stuff here...
}
function fctn2($table){
$db = wm_connectToDatabase ();
...function stuff here...
}
最初我假设标题连接足以满足所有功能,只要在标题中有连接的页面上调用函数即可,但我发现情况并非如此。我的函数只有在我在每个函数中也打开另一个连接时才有效。我不确定为什么页眉中的初始连接不会对页面正文中的功能保持打开状态?感谢您的任何帮助。
同样,当我从函数中删除数据库连接时,函数“失败”,就好像没有数据库连接一样,即使我在 header 中调用了连接。谢谢。