我有一个用于更新表的mysql查询,例如:
$updatetokenquery = "UPDATE `UsersNew` SET `DeviceToken`='".$newdtoken."',"
. "`DeviceInfo`='".serialize($data['DeviceInfo'])."' , `DeviceType`='".strtolower($data['DeviceInfo']['OS'])."'"
. "WHERE `HashedUid` ='".$newUserId."'";
我有另一个表UsersOptStatus
,我需要在同一查询中更新该表的Actionkey
字段
更新
我正在使用以下查询来更新新表。
$actionkey='loggedin';
$updatetokenquery = "UPDATE `UsersNew`, `UsersOptStatus` SET UsersOptStatus.Id=2, 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."' ";
echo $updatetokenquery;
问题:
最初,当我在UsersOptStatus表中输入一些ID,然后如果我点击了API,则数据似乎正在更新。
但是当表为空时,不会插入新的记录集。
手动插入值后:
插入值后,如果我使用API运行测试,则action_key字段中的值将更新。
但是,如果我只是在表中没有任何值的情况下运行API,则不会插入任何记录。
答案 0 :(得分:0)
“字段列表”中的未知列“ UsersOptStatus.Action_key”” 请检查UsersOptStatus表中的Action_key列,否则可能是拼写错误
答案 1 :(得分:0)
您的查询应该可以正常工作,除非有错字。 通用语法是
UPDATE table_1, table_2
SET table_1.col1 = {newValue}, table_2.col3 = {anotherValue}
WHERE
table_1.col2 = {something}
也请为表名加上别名,以缩短查询时间。 UsersOptStatus为uos
答案 2 :(得分:0)
$updatetokenquery = "UPDATE `UsersNew`, `UsersOptStatus` SET UsersOptStatus.Action_key='".$actionkey."', UsersNew.DeviceToken='".$newdtoken."',"
. "UsersNew.DeviceInfo='".serialize($data['DeviceInfo'])."' , UsersNew.DeviceType='".strtolower($data['DeviceInfo']['OS'])."'"
. "WHERE UsersNew.HashedUid ='".$newUserId."' AND UsersNew.Uid = UsersOptStatus.Uid ";
对不起,我不明白为什么要检查这个UsersOptStatus.Action_key ='“。$ actionkey。”'。希望对您有帮助。