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

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

具有“ WHERE…IN”查詢的PDO

具有“ WHERE…IN”查詢的PDO

PHP
DIEA 2019-12-02 13:20:29
我正在重新編寫一些PHP代碼以使用PDO進行數據庫訪問,但是我遇到了“ WHERE ... IN”查詢問題。我正在嘗試根據檢查表單上的哪些項目從數據庫中刪除某些內容。列表的長度和內容將有所不同,但是對于此示例,請想象是這樣的:$idlist = '260,201,221,216,217,169,210,212,213';然后查詢如下所示:$query = "DELETE from `foo` WHERE `id` IN (:idlist)";$st = $db->prepare($query);$st->execute(array(':idlist' => $idlist));當我這樣做時,僅第一個ID被刪除。(我認為它會拋出逗號及其后的所有內容。)我也嘗試過制作$idlist一個數組,但是它不會刪除任何東西。在PDO準備好的語句中使用項目列表的正確方法是什么?
查看完整描述

3 回答

?
BIG陽

TA貢獻1859條經驗 獲得超6個贊

由于您無法將值(數字)與控制流邏輯(逗號)與準備好的語句混合使用,因此每個值需要一個占位符。


$idlist = array('260','201','221','216','217','169','210','212','213');


$questionmarks = str_repeat("?,", count($idlist)-1) . "?";


$stmt = $dbh->prepare("DELETE FROM `foo` WHERE `id` IN ($questionmarks)");

然后循環綁定參數。


查看完整回答
反對 回復 2019-12-02
?
慕蓋茨4494581

TA貢獻1850條經驗 獲得超11個贊

解決方案:<input type="checkbox" name="foos[]" value="bar">提交后,我得到一個名為的變量$_POST['foos'],它是所有復選框的值的數組。然后://與數組條目一樣多的問號;最后一個不需要逗號, $questionmarks = str_repeat("?,", count($_POST['foos'])-1) . "?"; $query = "DELETE from employee_customeraccount`在哪里id($ questionmarks)“; $ st = $ db-> prepare($ query); //每個問號都用數組$ st-> execute( $ _POST ['foos']);`有效!

查看完整回答
反對 回復 2019-12-02
  • 3 回答
  • 0 關注
  • 778 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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