使用mysql_affected_rows可以在用户进行更新时获取受影响的行数吗?如果有多个用户更新其密码并且我需要知道每个用户是否成功更新,该怎么办?因此,如果3个用户同时进行更新,即使一个用户更新未成功,mysql_affected_rows也可能返回2。那是怎么回事?我不能同时测试多个用户。这有多安全。
答案 0 :(得分:2)
它是安全的,并返回当前数据库连接的值(mysql-affected-rows function)。
答案 1 :(得分:1)
这很安全。它只返回您自己连接中最后一个查询的数据。
通过与 link_identifier 关联的最后一次INSERT,UPDATE,REPLACE或DELETE查询获取受影响的行数。
由于它是MySQL C API的瘦包装,我们还可以check that:
my_ulonglong mysql_affected_rows(MYSQL * mysql)
就我所见,它没有在任何地方明确说过,但确实需要连接标识符和it seems,一般模式是所有函数都返回有关特定连接的数据:
从多个客户端同时使用LAST_INSERT_ID()和AUTO_INCREMENT列完全有效。每个客户端将收到客户端执行的最后一个语句的最后插入的ID。
无论如何,如果您无法确定您获得的结果是否属于您,那么它将无法使用。
答案 2 :(得分:0)
这是安全的,因为它是特定于连接的。
答案 3 :(得分:0)
如果您将连接的引用作为参数传递,则它特定于该连接,因此即使同时有用户访问您的脚本,也可以安全使用 - 因为它们每个都使用单独的连接!请参阅documentation for mysql_affected_rows。
但请注意,不推荐使用整个mysql扩展。考虑切换到MySQLi或PDO_MySQL!
答案 4 :(得分:0)
我使用mysql_query("SELECT ROW_COUNT();");
。我总觉得它效果更好。