It appears that an UPDATE prepared statement which contains the same data as that already in the database returns 0 for affected_rows. I was expecting it to return 1, but it must be comparing the input values with the existing values and determining that no UPDATE has occurred.mysqli_stmt::$affected_rows
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
mysqli_stmt::$affected_rows
Референца за `mysqli-stmt.affected-rows.php` со подобрена типографија и навигација.
mysqli_stmt::$affected_rows
mysqli_stmt_affected_rows
класата mysqli_driver
mysqli_stmt::$affected_rows -- mysqli_stmt_affected_rows — Враќа вкупен број на редови променети, избришани, вметнати или совпаднати од последната извршена изјава
= NULL
Напиши целосна ознака на елемент
Процедурален стил
Враќа број на редови погодени од INSERT,
UPDATE, или DELETE Враќа број на редови погодени од последниот mysqli_stmt_num_rows() for
SELECT statements.
Параметри
-
statement објектот како свој прв аргумент. mysqli_stmt Само процедурален стил: А mysqli_stmt_init().
Вратени вредности
query. Работи како
UPDATE Цел број поголем од нула покажува број на погодени или вратени редови. Нула покажува дека ниту еден запис не е ажуриран за
WHERE statement, ниту еден запис не одговара на -1 укажува дека барањето вратило грешка или дека, за едно SELECT барање,
mysqli_stmt_affected_rows() беше повикан пред да се повика
mysqli_stmt_store_result().
Забелешка:
Ако бројот на погодени редови е поголем од максималната вредност на PHP int, бројот на погодени редови ќе биде вратен како стринг вредност.
Примери
Пример #1 mysqli_stmt_affected_rows() example
Напиши целосна ознака на елемент
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* create temp table */
$mysqli->query("CREATE TEMPORARY TABLE myCountry LIKE Country");
$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";
/* prepare statement */
$stmt = $mysqli->prepare($query);
/* Bind variable for placeholder */
$code = 'A%';
$stmt->bind_param("s", $code);
/* execute statement */
$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");
/* create temp table */
mysqli_query($link, "CREATE TEMPORARY TABLE myCountry LIKE Country");
$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";
/* prepare statement */
$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));Горните примери ќе дадат излез:
Rows inserted: 17
Види Исто така
- mysqli_stmt_num_rows() - Враќа број на редови преземени од серверот
- mysqli_stmt_store_result() - Складира сет на резултати во внатрешен бафер