Php çoklu satır Mysql güncellemek

1 Cevap php


Here's what I'm trying to do: Update an arbitrary number of rows, changing several fields to the SAME value.

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

Benim sorum şudur: Ne bir dizi arıyorum ne zaman nerede Maddesine kesin sözdizimi, ve nasıl bir php değişken aracılığıyla Set öğeler geçmek yok.

Thanks,
Michael

1 Cevap

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

Lütfen kimlikleri dinamik, ve muhtemelen vardır düzgün bir SQL sorgusu için onları kaçmak için böyle bir şey kullanırsanız:

// 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)";