mysqli_affected_rows始终返回1
问题描述:
我得到了一些问题mysqli_affected_rows,它返回所有的时间甚至更新不受影响。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);
可以任何身体帮助我吗?
答
如果你使用mysqli
然后使用只mysqli
前缀的函数。您不能与已弃用的mysql_query
方法混用并匹配。
事实上,你不应该使用mysql_query
在所有如果你使用mysqli
。
如果你刚刚你应该使用PDO,而不是开始。该mysqli
接口比传统的更好,但比起PDO这是相当烦人,脾气古怪。
在任何情况下,你必须要非常小心,总是使用任何和所有值proper SQL escaping。
答
我有这样的一个,它的工作,但我不希望使用面向对象的风格在代码的中间:
$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? reference
+0
如果您在使用'mysqli',那么你*必须*使用SQL占位符功能。查询应该看起来像'where id =?',稍后您将使用'bind_param'来为其分配'$ _POST'。 – tadman
'mysqli的!= mysql'。它们是PHP中的两个完全独立和独立的库。来自一个库的结果/句柄在其他库的调用中不可用。 –