我在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/

10-10 06:53