PHP mysqli_stmt_affected_rows MySQLi 函数

  • 定义和用法

    mysqli_stmt_affected_rows - 返回最后执行的语句更改,删除或插入的总行数
  • 版本支持

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

    mysqli_stmt_affected_rows ( mysqli_stmt $stmt )
    
    返回受INSERT,UPDATE或DELETE查询影响的行数。 此功能仅适用于更新表的查询。 为了从SELECT查询中获取行数,请改用 mysqli_stmt_num_rows()
  • 参数

    参数 必需的 描述
    stmt mysqli_stmt_init() 返回的 statement 标识。
  • 返回值

    大于零的整数表示受影响或已检索的行数。 零表示没有针对UPDATE / DELETE语句更新的记录,没有与查询中的WHERE子句匹配的行,或者尚未执行任何查询。 -1表示查询已返回错误。 NULL表示已向函数提供了无效的参数。
    如果受影响的行数大于最大PHP int值,则受影响的行数将作为字符串值返回。
  • 示例

    <?php
    $link = mysqli_connect("localhost", "my_user", "my_password", "world");
    
    /* check connection */
    if (mysqli_connect_errno()) {
        printf("Connect failed: %s\n", mysqli_connect_error());
        exit();
    }
    
    /* create temp table */
    mysqli_query($link, "CREATE TEMPORARY TABLE myCountry LIKE Country");
    
    $query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";
    
    /* prepare statement */
    if ($stmt = mysqli_prepare($link, $query)) {
    
        /* Bind variable for placeholder */
        $code = 'A%';
        mysqli_stmt_bind_param($stmt, "s", $code);
    
        /* execute statement */
        mysqli_stmt_execute($stmt);
    
        printf("rows inserted: %d\n", mysqli_stmt_affected_rows($stmt));
    
        /* close statement */
        mysqli_stmt_close($stmt);
    }
    
    /* close connection */
    mysqli_close($link);
    
  • 相关函数

    mysqli_stmt_num_rows() - 返回语句结果集中的行数
    mysqli_prepare() - 准备执行一个 SQL 语句