我遇到了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);
任何人都可以帮助我吗?
答案 0 :(得分:3)
如果您使用的是mysqli
,那么您只能使用 mysqli
前缀函数。您不能与已弃用的mysql_query
方法混用和匹配。
事实上,如果您使用的是mysql_query
,则根本不应该使用mysqli
。
如果您刚入门,则应使用PDO代替。 mysqli
接口比传统接口更好,但与PDO相比,它相当烦人且非常烦人。
在任何情况下,必须要非常小心,始终对任何和所有值使用proper SQL escaping。
答案 1 :(得分:0)
我有这个,它有用,但我不想在代码中间使用面向对象的风格:
$mysqli->query('UPDATE '.tblAVB.' SET a= "1" WHERE id= "'.$_POST['id'].'" AND Active = "1" ');
$prove = $mysqli->affected_rows;
并且程序风格不起作用!!!!! 因为我在查询之前将它连接到db而不使用$ 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受影响? reference