我需要像这样进行更新的查询:
"UPDATE users SET email_code='1' WHERE id=".$id." AND email_code='".$email_code."'";
如果该行已更新,则设置$_SESSION['verified']=1
所以我必须知道该行是否已更新。
有办法知道吗?或者我必须先进行一个 SELECT 查询才能知道该行是否存在?
您可以使用mysqli_affected_rows
来查看执行查询后是否更改了任何行。
if(mysqli_affected_rows($link) > 0){
// do session stuff
}
您可以在 MySQL 中为 users 表设置一个触发器,并让 MySQL 运行一个脚本来设置一些可以访问该会话的变量。但这会给后部带来不必要的巨大痛苦。
我会在必要的页面上创建一个 AJAX 心跳来检查该行是否存在,然后更新您需要的会话。这样更干净。
在mysql_
和mysqli_
函数族中有mysqli_affected_rows
和mysql_affected_rows
。我对 PDO 不是很熟悉,但肯定有类似的东西。
您还可以检查查询返回 true 还是 false 并相应地设置 $_SESSION['verified'] 。http://php.net/manual/en/function.mysql-query.php