无法连接到php函数内的数据库
我有一个php文件,其中我连接到我的数据库并检索我的值无法连接到php函数内的数据库,php,function,Php,Function,我有一个php文件,其中我连接到我的数据库并检索我的值 <? $dbconn = mysqli_connect(..,..,..); $query = ... $result = ... ... ?> 这段代码一切都很好,但是当我将块放在php函数中时,我无法检索我的值(无法执行对过程的调用),我尝试这样做: <? $dbconn = mysqli_connect(...,...,...); function drawTable()
<?
$dbconn = mysqli_connect(..,..,..);
$query = ...
$result = ...
...
?>
这段代码一切都很好,但是当我将块放在php函数中时,我无法检索我的值(无法执行对过程的调用),我尝试这样做:
<?
$dbconn = mysqli_connect(...,...,...);
function drawTable()
{
$query = ...
$result = ...
....
}
drawTable();
?>
如果在函数中使用$dbconn
变量,则它将失败,因为它不在正确的范围内。将$dbconn
变量传递给函数,以便它可以使用它 这是因为在函数范围内,外部变量不可见
可以通过使$dbconn变量为全局变量或将其作为参数传递来访问该变量
global $dbconn;
$dbconn = mysqli_connect(...,...,...);
function drawTable()
{
global $dbconn;
$query = ...
$result = ...
....
}
drawTable();
或
方式1:访问全局
$dbconn
$dbconn = mysqli_connect(...,...,...);
function drawTable()
{
global $dbconn;
$query = ...
$result = ...
....
}
drawTable();
方式2:将$dbconn
作为参数传递
$dbconn = mysqli_connect(...,...,...);
function drawTable($dbconn)
{
$query = ...
$result = ...
....
}
drawTable($dbconn);
您可以在另一个php文件中声明conn,然后将其包含在函数中作为替代,而不是全局声明conn 在conn.php中
$dbconn = mysqli_connect(..,..,..);
在function.php中
function somefunction()
{
include('/dir/to/conn.php');
$query = ...
$result = ...
}
从现在开始,您可以对每个函数使用conn,但必须将其包含在使用连接的每个函数中。如果需要更改连接参数,可以通过conn.php进行更改。您不需要遍历所有函数。您需要在函数外定义$query和$result?不,查询必须在函数内,因为每次调用函数时,都会从数据库中检索数据。如果您显示的是代码而不是“…”,那么我们就会知道这是一个范围问题。它们不起作用,如果您需要我发布一些代码,请告诉我,非常感谢您通过将die(“无法执行选择查询-”.mysqli_error())替换为die(“无法执行选择查询:”.var_export($query,true))来获得更多线索因为如果您使用其他变量来构建查询,那么您的查询构建可能会受到函数范围的影响。另外,请添加代码错误报告(E|ALL | E|u STRICT),以确保您捕获了所有PHP错误,例如未设置的变量。它们不起作用,如果您需要我发布一些代码,请告诉我,谢谢,我有以下代码:$result=mysqli_query($dbconn,$query)或die(“无法执行选择查询-”.mysqli_error());我得到的错误是:无法执行select查询-如果没有函数部分(如我在帖子中所述),我的查询工作得很好,但是当我在我的函数中调用它时,没有任何检索请发布您的全部代码。并使用mysqli_error($dbconn);他们不工作,让我知道如果你需要我发布一些代码,谢谢更多的代码将帮助。发布更新后的代码,以便我们可以看到问题所在
function somefunction()
{
include('/dir/to/conn.php');
$query = ...
$result = ...
}