我在检查MySQL更新语句是否成功时遇到问题。我想更新用户电子邮件。但他们必须用令牌授权自己。当用户提交与之前数据库中相同的电子邮件时,我已经使用了mysql_affected_rows bu,受影响的行将是0而不是1。 即使新电子邮件与以前相同,我如何检查用户是否有一行使用该令牌?
UPDATE users SET email = '".$email."' WHERE token = '".$token."'
答案 0 :(得分:1)
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)
//成功