Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak mogę uzyskać błąd podczas uruchamiania wielu zapytań z PDO?

Odpowiedź znalazłam w wykorzystaniu przygotowanego oświadczenia. Po przejściu pętli przez wszystkie zestawy wierszy mogę sprawdzić, czy ostatnie wykonane zapytanie spowodowało błąd przy użyciu $stmt->errorInfo() .

$db = new PDO("mysql:host=localhost;dbname=test", 'root', '');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, 1);

$sql = "
DELETE FROM car; 
INSERT INTO car(name, type) SELECT name, from FROM vehicle;
";

$stmt = $db->prepare($sql);
$stmt->execute();
$i = 0;

do {
  $i++;
} while ($stmt->nextRowset());

$error = $stmt->errorInfo();
if ($error[0] != "00000") {
  echo "Query $i failed: " . $error[2];
  die();
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak używać MySQL przez XAMPP?

  2. Wyszukiwarka pokazuje wszystkie produkty

  3. Wstawić tylko wtedy, gdy wartości różnią się od poprzedniego rekordu z multi insertem?

  4. Jak zduplikować tabelę z kluczami i innymi funkcjami struktury zachowanymi w MySQL?

  5. Jak naprawić błąd „Wartość poza zakresem dostosowana do kolumny”?