我需要像这样制作一个更新的查询:
"UPDATE users SET email_code='1' WHERE id=".$id." AND email_code='".$email_code."'";
如果行已更新,请设置$_SESSION['verified']=1
所以我必须知道该行是否已更新。
有没有办法知道这个?或者我必须首先进行SELECT查询才能知道该行是否存在?
答案 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_rows
和mysql_affected_rows
。我对PDO不是很熟悉,但肯定会有类似的东西。
答案 3 :(得分:0)
您还可以检查查询是返回true还是false,并相应地设置$ _SESSION ['verified']。 http://php.net/manual/en/function.mysql-query.php