(PHP 5, PHP 7, PHP 8)
mysqli_stmt::$affected_rows -- mysqli_stmt_affected_rows — Returns the total number of rows changed, deleted, inserted, or matched by the last statement executed
面向对象风格
过程化风格
Returns the number of rows affected by INSERT
, UPDATE
, or DELETE
query. Works like mysqli_stmt_num_rows() for SELECT
statements.
statement
仅以过程化样式:由 mysqli_stmt_init() 返回的 mysqli_stmt 对象。
An integer greater than zero indicates the number of rows affected or retrieved. Zero indicates that no records were updated for an UPDATE
statement, no rows matched the WHERE
clause in the query or that no query has yet been executed. -1
indicates that the query returned an error or that, for a SELECT
query, mysqli_stmt_affected_rows() was called prior to calling mysqli_stmt_store_result().
注意:
If the number of affected rows is greater than maximum PHP int value, the number of affected rows will be returned as a string value.
示例 #1 mysqli_stmt_affected_rows() example
面向对象风格
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$mysqli->query("CREATE TEMPORARY TABLE myCountry LIKE Country");
$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";
$stmt = $mysqli->prepare($query);
$code = 'A%';
$stmt->bind_param("s", $code);
$stmt->execute();
printf("Rows inserted: %d\n", $stmt->affected_rows);
过程化风格
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
mysqli_query($link, "CREATE TEMPORARY TABLE myCountry LIKE Country");
$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";
$stmt = mysqli_prepare($link, $query);
$code = 'A%';
mysqli_stmt_bind_param($stmt, "s", $code);
mysqli_stmt_execute($stmt);
printf("Rows inserted: %d\n", mysqli_stmt_affected_rows($stmt));
以上示例会输出:
Rows inserted: 17