我需要像这样更新查询:
"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 on UPDATE中为用户表设置一个触发器,并让MySQL运行脚本来设置一些可以访问该会话的变量。但这在后方会是不必要的巨大痛苦。
我会在页面上创建一个 AJAX 检测信号,以检查并查看该行是否存在,然后更新您需要的会话。这样更干净。
在mysql_
和mysqli_
函数族中,有mysqli_affected_rows
和mysql_affected_rows
。我对PDO不是很熟悉,但肯定有类似的东西。
您还可以检查查询是否返回 true 或 false,并相应地设置 $_SESSION['verified']。 http://php.net/manual/en/function.mysql-query.php
http://www.php.net/manual/en/mysqli.query.php