即使在成功执行查询后也无法获取列数据

时间:2014-06-24 12:57:32

标签: php sql database postgresql

以下是我的代码片段

   $query="SELECT cid,city_name FROM city_trade WHERE city_name LIKE '$num' OR pin='$num'";
   $res=pg_query($query);
   if (!$res) {
     echo "Data Not found for this City"; exit;
   }else{
     $id=pg_fetch_assoc($res)['cid'];
     $name=pg_fetch_assoc($res)['city_name'];
     var_dump($id);
     var_dump($name);
   }

我得$name NULL$id是正确的。
成功执行查询后,为什么city_name没有出现?
我们如何在不使用额外查询的情况下获取它?

1 个答案:

答案 0 :(得分:2)

您只获得一个结果,但是您尝试从结果集中获取两行。您只需拨打pg_fetch_assoc()一次即可获得结果集,然后就可以从那里访问所需的值:

// Get results of query in an associative array
$row  = pg_fetch_assoc($res);
// Get each desired value
$id   = $row['cid'];
$name = $row['city_name'];