Обновление Mysql на дубликате ключа для нескольких таблиц не работает - PullRequest
0 голосов
/ 06 ноября 2018

Я пытаюсь обновить таблицу, но сначала проверим, выходит ли запись из таблицы в Zend Framework.

Я пытаюсь добиться того же, используя insert в синтаксисе DUPLICATE KEY UPDATE.

Ниже приведен актуальный запрос на обновление.

$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 из этого поста, но безрезультатно.

Синтаксическая ошибка при IF EXISTS UPDATE ELSE INSERT

...