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


Can't fetch the column data even after successful execution of query

这是我的代码片段

   $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在查询成功执行后不来?
我们如何在不使用额外查询的情况下获取它?

您只获得一个结果,但您试图从结果集中获取两行。你只需要调用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'];