PHP查询不返回结果

时间:2012-02-10 10:37:58

标签: php mysql

此查询未返回任何结果,因为sql似乎存在问题。

$sql = "select region_description from $DB_Table where region_id='".$region_id."' and region_status =(1)";
$res = mysql_query($sql,$con) or die(mysql_error()); 
$result = "( "; 
$row = mysql_fetch_array($res); 
$result .= "\"" . $row["region_description"] . "\"";
while($row = mysql_fetch_array($res))
{
   echo "<br /> In!";
   $result .= " , \"" . $row["region_description"] . "\""; 
}
$result .= " )";
mysql_close($con);
if ($result) 
{
   return $result;
} 
else 
{
   return 0;
}

region_id作为1传递。

我在数据库中有一条符合查询条件的记录,但在执行时没有返回任何行。我相信这个问题就在这一部分,

region_id='".$region_id."' 

所以在我的php中使用gettype函数时,事实证明region_id的数据类型是字符串而不是int,因此查询在我的tableis int中作为我的数据类型失败。什么是获取参数的方式被认为是在PHP中的int。在下面的网址

GetRegions.php?region_id=1

由于

5 个答案:

答案 0 :(得分:0)

尝试在查询结束时删除;

答案 1 :(得分:0)

试试这个

$sql = "select region_description from $DB_Table where region_id=$region_id AND region_status = 1";

当您比较整数类型的字段时,不应使用单引号

祝你好运

更新1

使用此..它将起作用

$sql = "select region_description from " .$DB_Table. " where region_id=" .$region_id. " AND region_status = 1";

答案 2 :(得分:0)

首先 - 你的代码非常混乱。您将字符串中的变量与转义字符串混合,整数应该在没有'的情况下传递。试试:

$sql = 'SELECT region_description FROM ' . $DB_Table . ' WHERE region_id = ' . $region_id . ' AND region_status = 1'; 

同样应删除;

答案 3 :(得分:0)

试试这样:

$sql = "SELECT region_description FROM $DB_Table WHERE region_id = $region_id AND region_status = 1"

region_id列似乎是整数类型,请勿使用单引号进行比较。

答案 4 :(得分:-1)

您不需要区域ID周围的单引号,即

$sql = "SELECT region_description FROM $DB_Table WHERE region_id = $region_id AND region_status = 1"