2009-07-29 2 views
1

다음은 저의 의도입니다 : 임의의 개수의 행을 업데이트하여 여러 필드를 같은 값으로 변경하십시오. 나는 세트에서 찾는 경우 정확한 구문은 Where 절에 무엇을, 어떻게 내가 PHP 변수를 통해 설정 항목을 전달하십시오 PHP에서 다중 행 업데이트 MySQL

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

내 질문

이있다.

감사합니다,
마이클

답변

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

+0

고마워요 @hobodave, 고정. –

+0

고마워, 내 입력은 'trimmed'해야했다. IN은 문자열에서만 작동합니까? – Dirk