Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 有没有办法知道行是否已更新?_Php_Mysql - Fatal编程技术网

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

Php 有没有办法知道行是否已更新?,php,mysql,Php,Mysql,我需要进行如下更新查询: "UPDATE users SET email_code='1' WHERE id=".$id." AND email_code='".$email_code."'"; 如果行已更新,则将会话['verified']=1设置为$\u 因此,我必须知道该行是否已更新 有办法知道吗?或者我必须首先进行一个SELECT查询,以了解该行是否存在?您可以在MySQL中为users表的更新设置一个触发器,并让MySQL运行一个脚本来设置访问该会话的变量。但这会给后面带来不必要的巨

我需要进行如下更新查询:

"UPDATE users SET email_code='1' WHERE id=".$id." AND email_code='".$email_code."'";
如果行已更新,则将会话['verified']=1设置为
$\u

因此,我必须知道该行是否已更新


有办法知道吗?或者我必须首先进行一个SELECT查询,以了解该行是否存在?

您可以在MySQL中为users表的更新设置一个触发器,并让MySQL运行一个脚本来设置访问该会话的变量。但这会给后面带来不必要的巨大痛苦


我会在页面上创建一个AJAX心跳信号,以检查该行是否存在,然后更新所需的会话。通过这种方式进行清理。

您可以使用
mysqli\u受影响的行
查看在执行查询后是否有任何行被更改

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

mysql
mysqli
函数系列中,有和。我对PDO不是很熟悉,但肯定有类似的地方。

您还可以检查查询是否返回true或false,并相应地设置$\u会话['verified']


您是否需要一个观察者,如果任何表行被更新,它会触发某种事件?还是只想检查更新是否成功?或者,如果不存在要更新的行,您想插入吗?或者,如果他选择的话,从PDO库插入。)这样我就必须使用Mysqli类。是否?您可以自由使用任何您想要的类,如果您使用的是
mysql.*
,那么您可以使用
mysql.\u受影响的行
,但不鼓励这样做。