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

时间:2011-10-28 07:47:22

标签: php function

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

<?
  $dbconn = mysqli_connect(..,..,..);
  $query = ...
  $result = ...
  ...
?>

这段代码的一切都很棒,但是当我把块放在php函数中时,我无法检索我的值(无法执行对过程的调用),我试着这样做:

<?
     $dbconn = mysqli_connect(...,...,...);
     function drawTable()
    {
       $query = ...
       $result = ...
       ....
    }
   drawTable();


?>

4 个答案:

答案 0 :(得分:3)

这是因为在函数范围内,外部变量不可见。

您可以通过将$ dbconn变量设为全局变量或将其作为参数传递来访问它。

global $dbconn; 
$dbconn = mysqli_connect(...,...,...);
function drawTable()
{
   global $dbconn;
   $query = ...
   $result = ...
   ....
}
drawTable();

 $dbconn = mysqli_connect(...,...,...);
 function drawTable($dbconn)
{
   $query = ...
   $result = ...
   ....
}
drawTable($dbconn);

答案 1 :(得分:0)

如果您在函数内使用$dbconn变量,那么它将失败,因为它不在正确的范围内。将$dbconn变量传递给函数,以便它可以使用它。

答案 2 :(得分:0)

方式1:访问全球$dbconn

$dbconn = mysqli_connect(...,...,...);
function drawTable()
{
    global $dbconn;
    $query = ...
    $result = ...
    ....
}
drawTable();

方式2:将$dbconn作为参数传递。

$dbconn = mysqli_connect(...,...,...);
function drawTable($dbconn)
{
    $query = ...
    $result = ...
    ....
}
drawTable($dbconn);

答案 3 :(得分:0)

您可以在另一个php文件中声明它,而不是在全局范围内声明conn,然后将其包含在函数中作为替代。

在conn.php中

$dbconn = mysqli_connect(..,..,..);

在您的函数.php

function somefunction()
{
  include('/dir/to/conn.php');
  $query = ...
  $result = ...
}

从这里开始,您可以将conn用于每个函数,但是必须将其包含在使用该连接的每个函数中。如果您需要更改连接参数,则可以通过conn.php进行更改。您不需要浏览所有功能。