SQL可以告诉我有多少行被更新了吗?

时间:2010-08-12 15:24:57

标签: php mysql

我只使用一个查询:

$sql = "UPDATE gallery SET order = (order+1) WHERE id_categ = ".$id;
$res = mysql_query($sql);

...

有可能吗?

4 个答案:

答案 0 :(得分:4)

mysql_affected_rows()

  

mysql_affected_rows - 获取数量   以前的MySQL中受影响的行   操作

示例:

$sql = "UPDATE gallery SET order = (order+1) WHERE id_categ = ".$id;
$res = mysql_query($sql);
printf("Affected rows: %d\n", mysql_affected_rows());

注意 mysql_affected_rows()返回受影响的行,无论是 last 的更新/删除>运行查询。例如:

$sql = "UPDATE gallery SET order = (order+1) WHERE id_categ = ".$id;
$res = mysql_query($sql);

$sql = "UPDATE gallery2 SET order = (order+1) WHERE id_categ = ".$id;
$res = mysql_query($sql);

现在,如果你这样做:

printf("Affected rows: %d\n", mysql_affected_rows());

它将返回 last 查询的受影响行,即gallery2表的查询。

更多信息:

答案 1 :(得分:3)

mysql_affected_rows()应该完成工作。

从手册中复制:

<?php
mysql_query("UPDATE mytable SET used=1 WHERE id < 10");
printf ("Updated records: %d\n", mysql_affected_rows());
// Prints: "Updated Records: 10"

答案 2 :(得分:2)

答案 3 :(得分:1)

是的,只需使用

  

mysql_affected_rows()

查询后

$sql = "UPDATE gallery SET order = (order+1) WHERE id_categ = ".$id;
$res = mysql_query($sql);
$rowsAffected = mysql_affected_rows();

编辑:该死,你们这些人很快;)