我需要这样一个更新查询:有没有办法知道一行是否更新?
"UPDATE users SET email_code='1' WHERE id=".$id." AND email_code='".$email_code."'";
,如果该行被更新,然后设置$_SESSION['verified']=1
所以,我必须知道,如果该行被更新。
有没有办法知道?或者我必须首先进行SELECT查询以确定该行是否存在?
我需要这样一个更新查询:有没有办法知道一行是否更新?
"UPDATE users SET email_code='1' WHERE id=".$id." AND email_code='".$email_code."'";
,如果该行被更新,然后设置$_SESSION['verified']=1
所以,我必须知道,如果该行被更新。
有没有办法知道?或者我必须首先进行SELECT查询以确定该行是否存在?
你可以在UPDATE中为用户表设置一个触发器,让MySQL运行一个脚本来设置一些可以访问该会话的变量。但那在后面会是一个不必要的巨大痛苦。
我会在页面上创建一个AJAX心跳,检查并查看该行是否存在,然后更新所需的会话。这样清洁。
您可以使用mysqli_affected_rows
来查看执行查询后是否有任何行被更改。
if(mysqli_affected_rows($link) > 0){
// do session stuff
}
其中mysql_
和mysqli_
家庭的功能有mysqli_affected_rows
和mysql_affected_rows
。我对PDO不是很熟悉,但肯定有类似的东西。
您也可以检查查询是否返回true或false,并相应地设置$ _SESSION ['verified']。 http://php.net/manual/en/function.mysql-query.php
你需要一个观察者,这触发某种事件,如果任何表中的行进行了更新?或者你只是想检查'UPDATE'是否成功?或者如果没有行存在要更新,你想插入吗? – feeela