所以我对PHP相当陌生,几乎没有问题。所以我有一个主要的索引页面,其中包含页眉和功能页面。在索引页的主体中,我调用了几个函数。多功能数据库连接功能
在我的头包括,我有我的数据库连接与索引页面加载。在我的每个函数中,我都没有调用一个新的数据库连接,因为我认为头文件中的数据库连接将在我的函数运行时保持打开状态。那么即使数据库连接在头文件中打开,当调用一个需要数据库访问的函数时,我会收到错误消息(数据库连接失败)。
因此,我添加了一个数据库连接到我的每个函数,它工作正常。我的问题是,我打开一个数据库连接时,通过页眉加载页面。然后即时通信打开另一个连接时,每个函数被调用可能是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...
}
最初,我假定管连接就能满足所有的功能,只要函数被调用一个网页,曾在头的连接上,但我发现这并非如此。我的功能只在im打开每个函数内的另一个连接时才起作用。我不确定为什么标题中的初始连接不会保持对我的页面正文中的函数开放?感谢您的任何帮助。
同样,当我从函数中删除数据库连接时,函数“失败”,就好像没有数据库连接,即使我调用头中的连接。谢谢。
http://php.net/manual/en/language.variables.scope。PHP – aynber
谢谢!这个页面帮助我了解了很多范围。 – user982853