如果空结果集,从MySQL和pdo :: fetchColumn()返回什么?

时间:2015-06-17 13:47:18

标签: php mysql pdo

$sql='SELECT id FROM mytable WHERE x=?';
$stmt=$conn->prepare($sql);
$stmt->execute(array(123));
$id=$stmt->fetchColumn();
syslog(LOG_INFO,'id ='.$id.' and is '(is_null($id)?'null':'not null'));

PHP $stmt->fetchColumn()返回看似为null的内容,但是,在测试时不会。

MySQL在shell上测试时显示MySQL returned an empty result set (i.e. zero rows). (Query took 0.0008 sec)

对于空结果集,返回$stmt->fetchColumn()是什么?

2 个答案:

答案 0 :(得分:1)

来自PHP documentation

  

从结果集的下一行返回单个列,如果没有其他行,则返回FALSE。

fetching使用:

单行提取:

$stmt->fetch();

多行获取:

while($stmt->fetch()) { 
   //do something
}

答案 1 :(得分:1)

返回false

http://php.net/manual/en/pdostatement.fetchcolumn.php

顺便说一句,我不认为$id=$stmt->fetchColumn();是正确的,因为你应该得到一个我认为的数组。