亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

pdo綁定數據不對

pdo綁定數據不對

翻閱古今 2019-04-21 20:40:26
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貢獻1824條經驗 獲得超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-21
  • 2 回答
  • 0 關注
  • 345 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號