MYSQLi PHP函数获取数组

MYSQLi PHP函数获取数组,php,function,fetch,Php,Function,Fetch,我试图通过运行一个基于已提交位置的PHP函数来检索一个区域 使用表单方法GET,提交后,我检索的变量是: $place = mysqli_real_escape_string($_GET['place]); 紧跟在区域之后的变量是: $zone = getZone($pol); // here is the PHP function call 在这两个变量的上方是函数getZone,如下所示: function getZone($place) { $searchZone =

我试图通过运行一个基于已提交位置的PHP函数来检索一个区域

使用表单方法GET,提交后,我检索的变量是:

 $place = mysqli_real_escape_string($_GET['place]);
紧跟在区域之后的变量是:

 $zone = getZone($pol);  // here is the PHP function call
在这两个变量的上方是函数getZone,如下所示:

 function getZone($place)
 {
   $searchZone = "SELECT ZONE FROM zones WHERE PLACE = '".$place."'";
   $result = mysqli_query($dbc, $searchZone);
   $row = mysqli_fetch_array($result);
   return $row['ZONE'];  
 }
我可以在数据库中运行查询,它会返回区域

现在,mysqli_fetch_数组(通常适用于我)无法从查询中生成结果


有人知道哪里出了问题吗?

您已经忘记了PHP的可变范围规则:

$result = mysqli_query($dbc, $searchZone);
                       ^^^^---- undefined
由于函数中未定义
$dbc
,因此使用的是无效的本地
null
句柄。如果您的代码中有任何类型的错误处理,您就会被告知该问题

试一试


相反。永远不要假设成功。总是假设失败,检查失败,并将成功视为惊喜。

好的。。。多亏了Marc B的帮助,我找到了答案。我考虑到我没有提供连接字符串,所以我把它添加到了文件中。问题是,我需要将其添加到实际函数中,如下所示:

 function getZone($place)
 {
   include ("../include/database.php");
   // then the rest of the code
在包含数据库连接后,现在可以检索区域

谢谢。

这可能会有帮助

  //Assuming $dbc as connection variable
  function getZone($dbc,$place)
   {
     $searchZone = "SELECT ZONE FROM zones WHERE PLACE = '".$place."'";
     $result = mysqli_query($dbc, $searchZone);
     $row = mysqli_fetch_array($result);
     return $row['ZONE'];  
   }
   include 'path/to/connectionfile';//Only if you haven't  already  done  that 
   $zone = getZone($dbc,$pol); 

你期望得到什么样的反馈?数组还是简单的行?我继续并包含了数据库文件,以便可以使用我的$dbc连接。仍然没有结果。
  //Assuming $dbc as connection variable
  function getZone($dbc,$place)
   {
     $searchZone = "SELECT ZONE FROM zones WHERE PLACE = '".$place."'";
     $result = mysqli_query($dbc, $searchZone);
     $row = mysqli_fetch_array($result);
     return $row['ZONE'];  
   }
   include 'path/to/connectionfile';//Only if you haven't  already  done  that 
   $zone = getZone($dbc,$pol);