Tôi đang tạo biểu mẫu nhiều bước cho người dùng của mình. Họ sẽ được phép cập nhật bất kỳ hoặc tất cả các lĩnh vực. Vì vậy, tôi cần phải gửi các giá trị, kiểm tra xem chúng có được đặt hay không và nếu có, hãy chạy UPDATE
. Dưới đây là những gì tôi có cho đến nay:CẬP NHẬT một mảng bằng 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,
);
Đây là PDO của tôi (cũng, nỗ lực bắt đầu)
$sth = $this->dbh->prepare("UPDATE user SET firstName = "); //<---Stuck here
$sth->execute();
$result = $sth->fetchAll(PDO::FETCH_ASSOC);
return $result;
Về cơ bản, làm thế nào tôi có thể tạo báo cáo kết quả UPDATE
vì vậy nó chỉ cập nhật các mục trong mảng không phải là NULL
?
Tôi nghĩ về việc chạy một vòng lặp foreach
như thế này:
foreach($updates as $key => $value) {
if($value == NULL) {
unset($updates[$key]);
}
}
nhưng làm thế nào tôi sẽ viết báo cáo kết quả prepare
nếu tôi không chắc chắn về giá trị?
Nếu tôi nói về điều này hoàn toàn sai, hãy chỉ cho tôi đi đúng hướng. Cảm ơn.
Bạn có thể sử dụng 'SET firstName = IFNULL (?, firstName)', xem http://stackoverflow.com/question s/2675968/sql-how-can-i-update-a-giá trị-trên-một-cột-chỉ-nếu-giá trị-là-null – mario
@mario Cảm ơn, ý tưởng tốt! – hek2mgl
@mario Cảm ơn bạn đã tip! Tôi không chắc chắn rằng sẽ giúp trường hợp của tôi, nếu 'IFNULL (NULL, 10);' trả về '10', tôi vẫn cần phải biết giá trị cho' 10', đúng không? Tôi chỉ đơn giản là cố gắng để ngăn chặn 'UPDATE' xảy ra nếu giá trị của một mục là' NULL' –