2009-07-29 112 views
1

以下是我想要做的:更新任意數量的行,將幾個字段更改爲SAME值。從php更新多行Mysql

$var = "1 3 5 7 9"; 
$query = "UPDATE tablename SET seen_before = 1 WHERE id = SET ($var);" 

我的問題是:什麼是確切的語法在Where子句,當我在一組看着,以及如何傳遞通過PHP變量的設置項。

感謝,
邁克爾

回答

6
$ids = "1, 3, 5, 7, 9"; 
$query = "UPDATE tablename SET seen_before = 1 WHERE id IN ($ids)"; 

如果你的ID是動態的,他們可能是,使用這樣才能正確地逃離他們的SQL查詢:

// Assuming $ids it's coming from an untrusted source, like $_GET 
$ids = array(1, 3, 5, 7, 9); 
$ids = array_map('intval', $ids); 
$ids = implode(', ', $ids); 

$query = "UPDATE tablename SET seen_before = 1 WHERE id IN ($ids)"; 
+0

@Ionut :您需要修正$ ids或$ var。 – hobodave 2009-07-29 16:04:50