PHP mysqli_affected_rows MySQLi 函数

  • 定义和用法

    mysqli_affected_rows - 获取上一个MySQL操作中受影响的行数
  • 版本支持

    PHP4 PHP5 PHP7
    不支持 支持 支持
  • 语法

    mysqli_affected_rows ( mysqli $link )
    
    返回受最后一个 INSERT,UPDATE,REPLACE 或 DELETE 查询影响的行数。 对于SELECT语句,mysqli_affected_rows()的工作方式类似于mysqli_num_rows()
  • 参数

    参数 必需的 描述
    link mysqli_connect()mysqli_init() 返回的链接标识。
  • 返回值

    大于零的整数表示受影响或已检索的行数。 零表示没有为UPDATE语句更新任何记录,没有与查询中的WHERE子句匹配的行,或者尚未执行任何查询。 -1表示查询返回错误。
    如果受影响的行数大于最大整数值(PHP_INT_MAX),则受影响的行数将作为字符串返回。
  • 示例

    <?php
    $link = mysqli_connect("localhost", "my_user", "my_password", "world");
    
    if (!$link) {
       printf("Can't connect to localhost. Error: %s\n", mysqli_connect_error());
       exit();
    }
    
    /* Insert rows */
    mysqli_query($link, "CREATE TABLE Language SELECT * from CountryLanguage");
    printf("Affected rows (INSERT): %d\n", mysqli_affected_rows($link));
    
    mysqli_query($link, "ALTER TABLE Language ADD Status int default 0");
    
    /* update rows */
    mysqli_query($link, "UPDATE Language SET Status=1 WHERE Percentage > 50");
    printf("Affected rows (UPDATE): %d\n", mysqli_affected_rows($link));
    
    /* delete rows */
    mysqli_query($link, "DELETE FROM Language WHERE Percentage < 50");
    printf("Affected rows (DELETE): %d\n", mysqli_affected_rows($link));
    
    /* select all rows */
    $result = mysqli_query($link, "SELECT CountryCode FROM Language");
    printf("Affected rows (SELECT): %d\n", mysqli_affected_rows($link));
    
    mysqli_free_result($result);
    
    /* Delete table Language */
    mysqli_query($link, "DROP TABLE Language");
    
    /* close connection */
    mysqli_close($link);
    
  • 相关函数

    mysqli_num_rows() - 获取结果中的行数
    mysqli_info() - 返回最近执行的 SQL 语句的信息