gpt4 book ai didi

php - mysql_affected_rows 返回 0 但数据库已更改

转载 作者:行者123 更新时间:2023-11-29 07:13:08 25 4
gpt4 key购买 nike

我遇到了函数 mysql_affected_rows 的奇怪行为,即使数据库中的寄存器发生更改,它也会返回 0。

我已将问题简化为尽可能简单的事情,因此您可以轻松地重现它。

一方面,我有一个文件(page1.php),其中包含以下代码,该代码仅更新数据库寄存器中的值:

<?php
mysql_connect('localhost', 'dbu', 'pass');
mysql_select_db('db');
$stmt="UPDATE aa SET a=4 WHERE id=0";
echo $stmt;
mysql_query($stmt);
$n = mysql_affected_rows();
echo "<br>N:".$n;
?>

另一方面,我有另一个页面(page2.php),其中包含任意不相关的代码:

<?php
echo "HELLO";
?>

如果我转到第1页,数据库已更新,N为1,一切正常。

如果我将 UPDATE 语句更改为 SET a=5,然后重新加载页面,数据库已更新,N 为 1,没问题。

但是,如果我将 UPDATE 更改为 SET a=6,则转到 page2,然后返回 page1,然后数据库再次正确更新,但在这种情况下 N 为 0。为什么 mysql_affected_rows 仅返回 0在这种情况下?

最佳答案

mysql_affected_rows 仅适用于刚刚在执行脚本中运行的查询(如果我没记错的话。)一旦转到第 2 页,然后重新加载第 1 页,就不会进行任何更改,因为它们是第一次进行的。

关于php - mysql_affected_rows 返回 0 但数据库已更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38902357/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com