如何知道更新了多少mysql行

时间:2011-10-13 14:39:16

标签: php mysql

我要更新很多数据库行,我想知道我已经更新了多少行。

示例:如果我的数据库包含以下4行

INSERT INTO `drink` VALUES (1, 'Non-Alcoholic', 'tea');
INSERT INTO `drink` VALUES (2, 'Non-Alcoholic', 'tea');
INSERT INTO `drink` VALUES (3, 'Non-Alcoholic', 'coffee');
INSERT INTO `drink` VALUES (4, 'Non-Alcoholic', 'pepsi');

我将使用以下

进行更新
$sql= "update drink set cat='tea' WHERE cat= 'Non-Alcoholic' AND subcat = 'tea'"; 

很明显,它只会更新2行

INSERT INTO `drink` VALUES (1, 'tea', 'tea'); 
INSERT INTO `drink` VALUES (2, 'tea', 'tea'); 
INSERT INTO `drink` VALUES (3,'Non-Alcoholic', 'coffee'); 
INSERT INTO `drink` VALUES (4,'Non-Alcoholic', 'pepsi');

现在我的问题是我怎么知道它已更新了多少行,我希望它显示为消息或其他什么,但我必须知道它。

所以任何想法或如何做到这一点 谢谢你的帮助

6 个答案:

答案 0 :(得分:2)

您可以使用php函数mysql_affected_rows()mysqli_affected_rows()

或者使用sql语句跟进update语句。

SELECT row_count() as affected_rows 

Mysql:http://www.php.net/manual/en/function.mysql-affected-rows.php
Mysqli:http://php.net/manual/en/mysqli.affected-rows.php http://dev.mysql.com/doc/refman/5.0/en/information-functions.html

答案 1 :(得分:2)

mysql_affected_rows:获取之前MySQL操作中受影响的行数:

...
$updated_count = mysql_affected_rows();
...

在查询后放置上述语句以计算受影响的行。

答案 2 :(得分:2)

答案 3 :(得分:1)

答案 4 :(得分:1)

您可以使用PHP:mysql_affected_rows()或C:mysql_info()

答案 5 :(得分:-1)

此代码将计算MySQL数据库表中的行数(条目/记录),然后使用屏幕上的echo显示它

<?php 



// Connect to the database 
db_connect(); 

// Query the database and get the count 
$result = mysql_query("SELECT * FROM drink"); 
$num_rows = mysql_affected_rows($result); 

// Display the results 
echo $num_rows; 

?>