我试图在一个简单的mysql更新查询中获取受影响的行数.但是,当我在下面运行此代码时,PHP的mysql_affected_rows()总是等于0.无论foo = 1(在这种情况下函数应该正确返回0,因为没有更改行),或者foo当前等于其他整数(在这种情况下,函数应返回1).
$updateQuery = "UPDATE myTable SET foo=1 WHERE bar=2";
mysql_query($updateQuery);
if (mysql_affected_rows() > 0) {
echo "affected!";
}
else {
echo "not affected"; // always prints not affected
}
Run Code Online (Sandbox Code Playgroud)
UPDATE语句本身有效.INT在我的数据库中被更改.我还仔细检查了数据库连接没有事先关闭或任何时髦.请记住,mysql_affected_rows不一定要求您传递连接链接标识符,尽管我也尝试过.
有关函数的详细信息:mysql_affected_rows
有任何想法吗?
Mri*_*tha 21
较新版本的MySQL非常聪明,可以查看修改是否完成.让我们说你启动了UPDATE声明:
UPDATE tb_Employee_Stats SET lazy = 1 WHERE ep_id = 1234
Run Code Online (Sandbox Code Playgroud)
让我们说如果列的值已经是1; 然后没有更新过程发生,因此mysql_affected_rows()将返回0; 否则如果列惰性具有其他值而不是1,则返回1.除人为错误外没有其他可能性.
Inn*_*gen -1
我很艰难!
我正要告诉检查该函数是否被调用多次!
只是一点建议:
尝试使用 isset() 和 POST / GET 或类似的东西;
if ( isset( $_POST['Update'] == 'yes' ) ) :
// your code goes here ...
endif;
Run Code Online (Sandbox Code Playgroud)
希望它是清晰和有用的,Ciao:)