1
我具有不同的ID的陣列,我想要遍歷這個數組,並使用這些ID來與數據庫表的單個字段進行比較在MySQL比較單個字段多個值
例
classid{
0=>1,
1=>2
}
,我有表作爲
id name
1 myname
2 ur name
3 everyonename
現在,我怎麼能檢索值兩個ID = 1和ID = 2,在短短一個選擇查詢?
我具有不同的ID的陣列,我想要遍歷這個數組,並使用這些ID來與數據庫表的單個字段進行比較在MySQL比較單個字段多個值
例
classid{
0=>1,
1=>2
}
,我有表作爲
id name
1 myname
2 ur name
3 everyonename
現在,我怎麼能檢索值兩個ID = 1和ID = 2,在短短一個選擇查詢?
你想查詢的是:
SELECT * FROM table WHERE id IN (1,2)
從PHP創建此,你會使用類似
$classid = array(1, 2);
$sql = sprintf('SELECT * FROM table WHERE id IN (%s)',
implode(',', $classid));
你應該超小心,防止SQL注入如果在值$classid
來自外部來源!通常這是通過準備語句和綁定參數來實現的,但在這種情況下(您想使用IN
的地方),這是不可能的。
因此,你應該自己清理的值,使用類似
// This will convert all the values in the array to integers,
// which is more than enough to prevent SQL injections.
$classid = array_map('intval', $classid);
非常非常感謝所有細節@Jon –