PHP / mysql获取UPDATE语句的受影响行数

时间:2011-12-02 13:14:30

标签: php mysql

使用php / mysql如何获得查询影响的行数?

到目前为止我尝试了什么:

$result = mysql_query($q);
mysql_num_rows($result);

但它说 警告:mysql_num_rows():提供的参数不是有效的MySQL结果资源

5 个答案:

答案 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;