Я создаю многошаговую форму для своих пользователей. Им будет разрешено обновлять все или все поля. Поэтому мне нужно отправить значения, проверить, установлены ли они, и если да, запустите UPDATE
. Вот то, что я до сих пор:UPDATE массив с использованием PDO
public function updateUser($firstName, $lastName, $streetAddress, $city, $state, $zip, $emailAddress, $industry, $password, $public = 1,
$phone1, $phone2, $website,){
$updates = array(
'firstName' => $firstName,
'lastName' => $lastName,
'streetAddress' => $streetAddress,
'city' => $city,
'state' => $state,
'zip' => $zip,
'emailAddress' => $emailAddress,
'industry' => $industry,
'password' => $password,
'public' => $public,
'phone1' => $phone1,
'phone2' => $phone2,
'website' => $website,
);
Вот мой PDO (ну, начало попытки)
$sth = $this->dbh->prepare("UPDATE user SET firstName = "); //<---Stuck here
$sth->execute();
$result = $sth->fetchAll(PDO::FETCH_ASSOC);
return $result;
В принципе, как я могу создать UPDATE
заявление, так что только обновляет элементы в массив, который не является NULL
?
Я думал о запуске foreach
цикл вроде этого:
foreach($updates as $key => $value) {
if($value == NULL) {
unset($updates[$key]);
}
}
но как бы я пишу prepare
заявление, если я не уверен значений?
Если я собираюсь сделать это совершенно неправильно, укажите мне в правильном направлении. Благодарю.
Возможно, вы можете использовать 'SET firstName = IFNULL (?, firstName)', см. Http://stackoverflow.com/question s/2675968/sql-how-can-i-update-a-value-on-a-column-only-if-that-value-is-null – mario
@mario Спасибо, хорошая идея! – hek2mgl
@mario Спасибо за подсказку! Я не уверен, что это поможет моему делу, если 'IFNULL (NULL, 10);' возвращает '10', мне все равно нужно знать значение для' 10', правильно? Я просто пытаюсь остановить «UPDATE», если значение элемента «NULL» –