sql >> Databáze >  >> RDS >> Mysql

mysqli_affected_rows pro UPDATE někdy vrátí 0 při úplné shodě řádku

Můžete použít mysqli_info abyste získali informace, které potřebujete k rozlišení mezi těmito dvěma případy. mysqli_info($link) po UPDATE dotaz vrátí řetězec něco jako

Rows matched: 1 Changed: 1 Warnings: 0

který pak můžete analyzovat, například pomocí 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";

Výstup:

12 rows matched, 8 rows changed

Potom můžete použít hodnoty v $matched a $changed pro rozlišení vašich dvou případů.




  1. Hloubkový průzkum zabezpečení na úrovni řádků

  2. Maze ladění výkonu

  3. Líné načítání jednoho sloupce (atribut třídy) pomocí režimu spánku

  4. Jak používat funkci SQL s INNER JOIN v MySQL?