sql >> Base de Datos >  >> RDS >> Mysql

mysqli_affected_rows para UPDATE a veces devuelve 0 en la coincidencia de fila completa

Puede usar mysqli_info para obtener la información que necesita para distinguir entre los dos casos. mysqli_info($link) después de una UPDATE consulta devolverá una cadena algo así como

Rows matched: 1 Changed: 1 Warnings: 0

que luego puede analizar, por ejemplo, usando preg_match :

// $info = mysqli_info($link);
$info = 'Rows matched: 12 Changed: 8 Warnings: 0';
preg_match('/Rows matched: (\d+) Changed: (\d+)/', $info, $matches);
list(, $matched, $changed) = $matches;
echo "$matched rows matched, $changed rows changed\n";

Salida:

12 rows matched, 8 rows changed

Luego puede usar los valores en $matched y $changed para distinguir entre sus dos casos.