为了账号安全,请及时绑定邮箱和手机立即绑定

pdo绑定数据不对

pdo绑定数据不对

收到一只叮咚 2019-04-10 20:49:17
php$sql='SELECT*FROMuserWHEREidIN(:ids)';$pdo=newPDO('mysql:host=localhost;dbname=test','root','');$sth->prepare($sql);$sth->execute([':ids'=>'1,2,3,4,5']);$users=$sth->fetchAll(PDO::FETCH_ASSOC);//然后。。。就没有然后了。。。数据为空经过我的一番测试,发现如果SQL是可以地:sqlSELECT*FROMuserWHEREidIN(1,2,3,4,5)但是PDO绑定数据的时候会把SQL变为酱紫(好吧,我猜的o(╯□╰)o):sqlSELECT*FROMuserWHEREidIN('1,2,3,4,5')这特么肯定就不行了啊。。。各位大大可有解决办法,既要能绑定数据,又要不出错?注意,以上只是简单说明,我的实际情况还要复杂得多。。。但问题我确定过了,就是这个(只有在条件为IN时且IN传入了2+才会出错)。@netingcn我的这种绑定方式是可以的,只是被PDO当成一个参数值了,而我其实是5个参数值。
查看完整描述

2 回答

?
四季花海

TA贡献1811条经验 获得超5个赞

附上我临时解决方案,期待哪位大大给出更好的解决办法:
$ids=[1,2,3,4,5];//外部传入的数组
$sql='SELECT*FROMuserWHEREidIN(';
foreach($idsas$id){
$sql.=intval($id).',';
}
$sql=rtrim($sql,',').')';
$pdo=newPDO('mysql:host=localhost;dbname=test','root','');
$sth->prepare($sql);
$sth->execute();
$users=$sth->fetchAll(PDO::FETCH_ASSOC);
                            
查看完整回答
反对 回复 2019-04-10
  • 2 回答
  • 0 关注
  • 374 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信