PHP& MySQL检查更新的行

时间:2011-10-26 19:56:51

标签: php mysql

我在检查MySQL更新语句是否成功时遇到问题。我想更新用户电子邮件。但他们必须用令牌授权自己。当用户提交与之前数据库中相同的电子邮件时,我已经使用了mysql_affected_rows bu,受影响的行将是0而不是1。 即使新电子邮件与以前相同,我如何检查用户是否有一行使用该令牌?

UPDATE users SET email = '".$email."' WHERE token = '".$token."'

4 个答案:

答案 0 :(得分:1)

PHP mysql_affected_rows手册中的

This user contribution显示了一种从调用mysql_info()中提取匹配行数的hacky方法。但是确实是 hacky。 (编辑:mysql_info的用户备注中有another version,这是更一般的,但仍然是hacky。)

我要做的是使用单独的查询:
"select count(token) as matches from users where token = $token"

答案 1 :(得分:0)

而不是依赖于mysql_affected_rows,是否可以改为依赖mysql_query函数的返回值?

例如

if (mysql_query ("UPDATE `users`
SET `email` = '".$email."'
WHERE `token` = '".$token."';")) { // success
} else { // fail
}

答案 2 :(得分:-1)

您可以使用mysql_affected_rows。这里记录:{{3p>

例如:

答案 3 :(得分:-1)

if(mysql_affected_rows() == 1) //成功