如果记录不存在,我知道如何插入。但如果确实存在,mysql不会将其视为错误。它只是将其视为插入的0行。我想知道是否是这样,并向用户返回他们提交的数据已经存在的消息。
我知道,如果在尝试插入新数据之前先查询mysql,我就可以做到这一点。但是,是否有一种方法对插入进行处理并获得结果?
发布于 2022-01-14 16:58:53
您可以使用关于重复密钥更新,在这种情况下,如果将行插入为新行,则行应该返回1;如果更新现有行,则返回2;如果将现有行设置为其当前值(来源),则返回0。因此,您的代码应该如下所示:
if ($mysqli->affected_rows == 1) { $inserted = true; } if ($mysqli->affected_rows == 2) { $updated = true; }
https://stackoverflow.com/questions/70713786
相似问题