Обновить строку на основе ассоциативного массива $ key = column $ value = value - PullRequest
1 голос
/ 26 марта 2012

Мне нужно создать запрос на обновление из ассоциативного массива из POST

POST содержит несколько ассоциативных массивов и пару пар ключ / значение

Я могу разобрать, какие массивыиспользовать, но я застрял при построении строки запроса на обновление

array1 (
i => 1 // This is used for each WHERE clause and is the row id
a => 2
b => 3
c => 4
)

array2 (
i => 2
a => 2
b => 3
c => 4
)

Мне НУЖНО: "ОБНОВИТЬ таблицу SET a = '2', b = '3', c = '4' WHERE id = 'array [i] '"

Я пробовал все виды foreach, хотя взрываем методы, собранные из других постов, но ни один из них не решает эту конкретную проблему.Любая помощь будет оценена.БЛАГОДАРЯ

1 Ответ

5 голосов
/ 26 марта 2012

Попробуйте следующее:

$id = array_shift($array);
$fields = array();

foreach($array as $field => $val) {
   $fields[] = "$field = '$val'";
}

$query = "UPDATE table SET " . join(', ', $fields) . " WHERE id = '$id'";
...