ОБНОВЛЕНИЕ SET объединить в MYSQL - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть проблема в PHP, которую я не могу решить:

$nIDEmp=$_GET["idEmp"];
$dniEmp=$_GET["dniEmp"];
$sql="UPDATE empleados
  SET
  dniEmp= coalesce($dniEmp, dniEmp) WHERE nIDEmp=$nIDEmp";

Итак, этот SQL-запрос DO работает, я без проблем пробовал его в своей базе данных, НО SQL выдает следующую ошибку:

You have an error in your SQL syntax; check the manual that corresponds to your 
MariaDB server version for the right syntax to use near ' dniEmp) WHERE nIDEmp=1' at line 3

Я просто не могу понять, что я делаю неправильно.

Заранее спасибо.

РЕДАКТИРОВАТЬ: я жестко закодировал NULL в SQL QUERY, и вдруг код сработал Так, php не отправляет нулевое значение в запросе sql? Как мне решить это?

1 Ответ

0 голосов
/ 16 ноября 2018

Решение: после выполнения запроса проверьте (в PHP), чтобы все значения были равны NULL, если они равны NULL, сделайте переменную = "NULL", как показано ниже:

$nIDEmp=$_GET["idEmp"];
$dniEmp=is_null($_GET["dniEmp"])?"NULL":$_GET["dniEmp"]; //<- Here is the solution
$sql="UPDATE empleados
SET
dniEmp= coalesce($dniEmp, dniEmp) WHERE nIDEmp=$nIDEmp";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...