我在PHP中无法解决此问题:
$nIDEmp=$_GET["idEmp"];
$dniEmp=$_GET["dniEmp"];
$sql="UPDATE empleados
SET
dniEmp= coalesce($dniEmp, dniEmp) WHERE nIDEmp=$nIDEmp";
因此,此SQL QUERY确实有效,我将它毫无问题地尝试到了数据库中,但是,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查询中,突然代码工作了
所以,PHP是不是发送空值到SQL查询?
我该如何解决?
最佳答案
解决方案:执行查询后,在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";
关于php - UPDATE SET在MYSQL中合并,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53343063/