我试图通过运行基于已经提交的地方的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无法从查询中产生结果。
有人看到了什么问题吗?
答案 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
在我包含数据库连接后,我现在可以检索区域。
谢谢。