MYSQL中的UPDATE集合合并



我在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查询发送null值吗?我该如何解决这个问题?

解决方案:完成查询后,检查(在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";

最新更新