3

複数のフィールドを更新する準備済みステートメントがあります。Formular からデータを取得しましたが、すべてのフィールドが必須というわけではありません。そのため、一部のフィールドが設定されていない可能性があります。デフォルトをNULLに設定しました。古い値を NULL で上書きしたくありません。NULL の場合、値を更新しないように MySql に指示するにはどうすればよいですか?

$insert_stmt = $mysqli->prepare("
UPDATE members SET username=?, email=?,  $password=?, $random_salt=?, level=?, customerID=?, name=?, surname=?, phone=?, quantities=? WHERE id=?
");
$insert_stmt->bind_param('ssssissss', $username, $email, $password, $random_salt, $level, $customerID, $firstname, $surname, $phone);
$insert_stmt->execute();

私の場合、NULLになる可能性があるのはパスワードとrandom_salt値です。パスワードを NULL だけで上書きするのは非常にまずいでしょう ;)

4

4 に答える 4