0

我遇到了 mysqli_affected_rows 的一些问题,它始终返回 1,即使更新不受影响。

$dbConnect = mysql_connect($dbHost, $dbUser, $dbPass);
$dbSelect = mysql_select_db($dbName, $dbConnect);

$sqlprove = mysql_query('UPDATE '.tblAVB.' SET a= "1" WHERE id= "'.$_POST['id'].'" AND Active = "1" ');

$isprove = mysqli_affected_rows($sqlprove);

有谁能够帮助我?

4

2 回答 2

3

如果你正在使用,mysqli那么你 mysqli使用前缀函数。您不能混合和匹配已弃用的mysql_query方法。

事实上,mysql_query如果您使用的是mysqli.

如果您刚刚开始,您应该改用PDO。该mysqli界面比旧版更好,但与 PDO 相比,它相当烦人和脾气暴躁。

在任何情况下,您必须非常小心,始终对任何和所有值使用正确的 SQL 转义。

于 2012-12-06T20:03:51.187 回答
0

我有这个,它可以工作,但我不想在代码中间使用面向对象的样式:

$mysqli->query('UPDATE '.tblAVB.' SET a= "1" WHERE id= "'.$_POST['id'].'" AND Active = "1" ');

$prove = $mysqli->affected_rows;

并且程序样式不起作用!!!!因为我在查询之前将它连接到数据库而不使用 $link !!!

$link = mysqli_connect("localhost", "my_user", "my_password", "world");
mysqli_query($link, "UPDATE Language SET Status=1 WHERE Percentage > 50");
printf("Affected rows (UPDATE): %d\n", mysqli_affected_rows($link));

是因为我使用mysql而不是mysqli吗?有没有办法让mysql的affected_rows? 参考

于 2012-12-06T20:33:28.867 回答