我正在尝试将列(LastName)更新为NULL,如果该列的值为空,则使用下面的mysql查询更新其值。
$updateUserInfo = "UPDATE `UsersNew` SET MobileNo = '".$dataArray['MobileNo']."',FirstName = '".$dataArray['FirstName']."', LastName = IF(LastName = '' OR LastName IS NULL, 'NULL', LastName), EmailId = '".$dataArray['EmailId']."' where Uid = '".$uid."';";
但是姓氏值没有得到更新
如果LastName为null,我希望该列被更新为NULL
,否则
'".$dataArray['LastName ']."'
答案 0 :(得分:2)
基本上,您需要更改将Server →nginx/1.10.3 (Ubuntu)
Date →Thu, 03 Jan 2019 14:25:23 GMT
Content-Type →application/json
Content-Length →1010
Connection →keep-alive
Access-Control-Allow-Origin →*
Access-Control-Allow-Methods →POST
更新为以下内容的部分:
LastName
请注意,LastName = " . (empty($dataArray['LastName']) ? 'NULL' : "'{$dataArray['LastName']}'") . "
不应用引号引起来。因此,您的整个查询变为:
NULL
答案 1 :(得分:1)
三元运算符对此非常有用:
$updateUserInfo = "UPDATE `UsersNew`
SET MobileNo = '".$dataArray['MobileNo']."',
FirstName = '".$dataArray['FirstName']."',
LastName = ".$dataArray['MobileNo']? "'".$dataArray['MobileNo']."'":"NULL,
EmailId = '".$dataArray['EmailId']."' where Uid = '".$uid."';";
但是请注意,您需要使用准备好的语句或PDO清理输入,否则您的代码可能会受到SQL注入的约束。
答案 2 :(得分:0)
'UsersNew'
不应具有'',并且应为UsersNew
来自w3Schools的示例:
$sql = "UPDATE MyGuests SET lastname='Doe' WHERE id=2";
另一个来源: Update query PHP MySQL
这本身并不能解决所有问题,但可以结合其他答案来解决。 最后,使用准备好的语句。