MYSQLi PHP函数获取数组

时间:2015-01-29 20:54:13

标签: php function fetch

我试图通过运行基于已经提交的地方的PHP函数来检索区域。

使用FORM方法GET,提交后,我正在检索的变量是:

 $place = mysqli_real_escape_string($_GET['place]);

紧接着的变量是zone:

 $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'];  
 }

我可以在数据库中运行查询,并返回ZONE。

现在,通常适用于我的mysqli_fetch_array无法从查询中产生结果。

有人看到了什么问题吗?

3 个答案:

答案 0 :(得分:1)

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

$result = mysqli_query($dbc, $searchZone);
                       ^^^^---- undefined

由于函数中未定义$dbc,因此您使用的本地null句柄无效。如果您在代码中遇到任何类型的错误处理,那么您已被告知此问题。

尝试

global $dbc;
$result = mysqli_query(...) or die(mysqli_error($dbc));

代替。从不假设成功。总是假设失败,检查失败,并将成功视为一个惊喜。

答案 1 :(得分:1)

这可能会有所帮助

  //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); 

答案 2 :(得分:0)

好的......我想通了,感谢Marc B的帮助。我考虑到我没有提供连接字符串,所以我将它添加到文件中。问题是,我需要将它添加到实际函数中,如下所示:

 function getZone($place)
 {
   include ("../include/database.php");
   // then the rest of the code

在我包含数据库连接后,我现在可以检索区域。

谢谢。