mysql from in pdo_MySQL WHERE IN()AND,PDO只返回一行

如果在phpmyadmin中输入,则以下查询将返回所有想要的结果:

SELECT postid, voting

FROM postvotes

WHERE userid = 1

AND postid IN

(1007,1011,1012,1013,1014,

1015,1016,1017,1018,1019,1020,1021,1023,1025,1026,

1027,1028,1029,1030,1031)

但PDO无法fetchAll() . 它只返回第一个匹配,如fetch() .

怎么了?

PHP代码:

private function userPostVotings( $postIDs ) {

// $postIDs contains a string like 1,2,3,4,5,6,7...

// generated through implode(',', idArray)

try {

$userPostVote = $this->_db->prepare('SELECT postid, voting

FROM postvotes

WHERE userid = ?

AND postid IN ( ? )');

$userPostVote->setFetchMode(\PDO::FETCH_ASSOC);

$userPostVote->execute( array( $this->_requester['id'], $postIDs ) );

while ( $res = $userPostVote->fetch() ) {

var_dump( $res );

}

} catch (\PDOException $p) {}

}

如果我回显出此方法中使用的查询并通过phpmyadmin触发它,我会得到正确数量的结果 . 然而,PDO只给出了第一个 . 无论是带有fetch()还是fetchAll()的循环 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值