Да, я считаю, что это возможно. Для этого можно использовать функцию IF ().
UPDATE `table` SET field_1 = IF(field_1 IS NULL or field_1 = "", ?, field_1), field_2 = IF(field_2 IS NULL or field_2 = "", ?, field_2)
Обратите внимание на? в запросе, так как это заполнители для подготовленных операторов
Что вам следует серьезно учитывать, особенно при использовании пользовательского ввода. пример может выглядеть как
$conn = new PDO; // configure this class accordingly.
$query = $conn->prepare("select * from table where field = ? and field_2 = ?");
try {
$query->execute(array($value1, $value2));
} catch (PDOException $e) {
$e->getErrors(); // Do what you want to do with this log, print etc.
}
$results = $query->fetchAll(PDO::FETCH_ASSOC); // This will return an array of results.
$result = $query->fetch(PDO::FETCH_ASSOC); // This will return the first result.
Выше приведен просто пример того, как вы можете выполнить запрос, который предотвращает внедрение sql, пожалуйста, прочтите об этом здесь для получения дополнительной информации и рассмотрите возможность его применения
https://www.php.net/manual/en/pdo.prepare.php
https://www.php.net/manual/en/mysqli.prepare