使用php / mysql如何获得查询影响的行数?
到目前为止我尝试了什么:
$result = mysql_query($q);
mysql_num_rows($result);
但它说 警告:mysql_num_rows():提供的参数不是有效的MySQL结果资源
答案 0 :(得分:15)
如果你正在使用PDO(我建议使用),直接查询exec()
会返回受影响的行数。对于Prepared Statements,有一个名为rowCount()
的方法。
如果您使用的是the mysql-functions,那就是mysql_affected_rows()
。
修改强>
好像你正在使用mysql函数。 mysql_num_rows
,您正在使用的,返回结果集的长度(例如,对于SELECT-Statements)。您需要使用的是mysql_affected_rows
(如前所述)。
答案 1 :(得分:6)
您还可以使用ROW_COUNT()功能,例如 -
UPDATE table1 SET column1 = 100 WHERE column2 = 10;
SELECT ROW_COUNT();
从引用 - ROW_COUNT()返回最后一个语句更改,删除或插入的行数(如果它是UPDATE,DELETE或INSERT ...
答案 2 :(得分:5)
答案 3 :(得分:2)
钳,
您需要向mysql_affected_rows
提供资源,而不是结果记录。请参阅其他人发布的链接以获取更多信息。
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$result = mysql_query($q);
echo mysql_affected_rows($link);
答案 4 :(得分:0)
也可以使用PDO来做到这一点:
$db = new PDO('', '', '')// your connection
$sql = "UPDATE tb_table SET rowname = value WHERE rowid = 1";
$query = $db->query($sql);
echo $query;