有没有办法知道行是否更新?

时间:2012-06-13 16:49:05

标签: php mysql

我需要像这样制作一个更新的查询:

"UPDATE users SET email_code='1' WHERE id=".$id." AND email_code='".$email_code."'";

如果行已更新,请设置$_SESSION['verified']=1

所以我必须知道该行是否已更新。

有没有办法知道这个?或者我必须首先进行SELECT查询才能知道该行是否存在?

4 个答案:

答案 0 :(得分:6)

您可以使用mysqli_affected_rows查看执行查询后是否更改了任何行。

if(mysqli_affected_rows($link) > 0){
    // do session stuff
}

答案 1 :(得分:1)

你可以在UPDATE的MySQL中为users表设置一个触发器,并让MySQL运行一个脚本来设置一个可以访问该会话的变量。但这对后方来说是一种不必要的巨大痛苦。

我会在必要的页面上创建一个AJAX心跳,以检查该行是否存在,然后更新您需要的会话。这样清洁。

答案 2 :(得分:1)

mysql_mysqli_系列函数中,有mysqli_affected_rowsmysql_affected_rows。我对PDO不是很熟悉,但肯定会有类似的东西。

答案 3 :(得分:0)

您还可以检查查询是返回true还是false,并相应地设置$ _SESSION ['verified']。 http://php.net/manual/en/function.mysql-query.php

http://www.php.net/manual/en/mysqli.query.php