无法连接到php函数内的数据库

无法连接到php函数内的数据库,php,function,Php,Function,我有一个php文件,其中我连接到我的数据库并检索我的值 <? $dbconn = mysqli_connect(..,..,..); $query = ... $result = ... ... ?> 这段代码一切都很好,但是当我将块放在php函数中时,我无法检索我的值(无法执行对过程的调用),我尝试这样做: <? $dbconn = mysqli_connect(...,...,...); function drawTable()

我有一个php文件,其中我连接到我的数据库并检索我的值

<?
  $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 = ...
}