Mysql插入重复键更新多个表不起作用

时间:2018-11-06 14:01:22

标签: php mysql zend-framework2

我正在尝试更新表,但首先检查Zend框架中表中的记录是否退出。

我正在尝试使用DUPLICATE KEY UPDATE语法上的insert实现相同的功能。

下面是我的实际更新查询。

$updatetokenquery = "UPDATE `UsersNew`, `UsersOptStatus` SET  UsersOptStatus.Uid ='".$uid."', UsersOptStatus.CreatedDate=now(), UsersOptStatus.Action_key='".$actionkey."',  UsersNew.DeviceToken='".$newdtoken."',"
              . "UsersNew.DeviceInfo='".serialize($data['DeviceInfo'])."' , UsersNew.DeviceType='".strtolower($data['DeviceInfo']['OS'])."'"
              . "WHERE UsersNew.HashedUid ='".$newUserId."' ";

我正在尝试检查记录是否存在,然后在插入时更新其他内容。

下面是我的尝试方式。

$Inserttokenquery = "INSERT INTO UsersOptStatus (Id, Uid, CreatedDate,Action_key) VALUES (1,'$uid',now(),'$actionkey') 
ON DUPLICATE KEY UPDATE `UsersNew`, `UsersOptStatus` SET  UsersOptStatus.Uid ='".$uid."', UsersOptStatus.CreatedDate=now(), UsersOptStatus.Action_key='".$actionkey."',  UsersNew.DeviceToken='".$newdtoken."',"
              . "UsersNew.DeviceInfo='".serialize($data['DeviceInfo'])."' , UsersNew.DeviceType='".strtolower($data['DeviceInfo']['OS'])."'"
              . "WHERE UsersNew.HashedUid ='".$newUserId."'";

我收到以下错误:

  

检查与您的MySQL服务器版本相对应的手册,以在\ u0027 UsersOptStatus SET UsersOptStatus.Uid = \ u00271608 \ u0027,UsersOptStatus附近使用正确的语法。

试图从这篇文章中删除SET关键字,但没有帮助。

Syntax error with IF EXISTS UPDATE ELSE INSERT

0 个答案:

没有答案