2013-07-13 74 views
-3

我需要運行sql查詢來執行一些數據庫更新。基於值數組更新db字段

$members = "120,238,93,123,1"; 

,然後我需要運行一個SQL查詢,如:

$DB->query("UPDATE " . DB_PREFIX . "members SET lastvisit=$lastvisit WHERE member_id=$members_id"); 

我所試圖做的是運行DB更新爲每位成員的id`s,我在指定我的文件開始。 想我需要爆炸$成員和條款或東西,但不知道它是如何應該是

+0

你熟悉MySQL的['IN()'] (http://dev.mysql.com/doc/en/comparison-operators.html#function_in)運算符? – eggyal

+0

您正在使SQL注入過於簡單。我認爲你應該閱讀關於他們。 –

+0

@Patrick:你正在假設'$ lastvisit'和'$ members'的源(和轉義),這些在問題中沒有顯示。 – eggyal

回答

0

這應該工作做:

$DB->query("UPDATE " . DB_PREFIX . "members SET lastvisit=$lastvisit WHERE member_id IN (120,238,93,123,1) "); 
+0

IN函數是否完全匹配值? 例如ID 93在我的數據庫中,我可以有2393或193的ID。 – misulicus

+0

它是完全匹配的。 WHERE member_id = 120或member_id = 238..etc – JimL