num_rows - Obtenga el número de filas que coincidan con la consulta de ACTUALIZACIÓN con PHP mysqli
mysqli_result (5)
Puede ejecutar SELECT COUNT(*)
con la misma cláusula WHERE antes de ejecutar UPDATE. Eso le dará un recuento de la cantidad de filas que se emparejarán.
La antigua extensión mysql tiene el CLIENT_FOUND_ROWS
conexión CLIENT_FOUND_ROWS
, pero no pude encontrar ningún equivalente para mysqli .
Tengo una consulta de update
y quiero saber cuántas filas coinciden con la cláusula where
, no cuántas se cambiaron realmente (como lo indica mysqli -> affected_rows
).
La única forma que he descubierto hasta ahora es analizar mysqli -> info
(que se parece a Rows matched: 40 Changed: 40 Warnings: 0
) con una expresión regular. Pero eso parece hacky.
También SELECT ROW_COUNT()
puede dar el número de filas afectadas por la consulta de actualización.
Use el siguiente código:
// Parse the digits from the info string that has the following format:
// Rows matched: 0 Changed: 0 Warnings: 0
preg_match_all(''!/d+!'', $mysqli->info, $m);
return $m[0][0];
está en las opciones de mysqli_real_connect
.
También se introdujo en PDO :: MySQL en PHP 5.3.
Hice una función de explosión en los resultados devueltos por el comando de información y luego tomé el índice [1].
$ affected = explode (":", $ connection-> info); $ rowsAffected = $ affected [1];