sql >> Databasteknik >  >> RDS >> Mysql

Hur kan jag få ett felmeddelande när jag kör flera frågor med PDO?

Jag hittade svaret genom att använda ett förberett uttalande. Efter att ha gått igenom alla raduppsättningar kan jag kontrollera om den senast körda frågan orsakade ett fel med $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. gem installera mysql misslyckas

  2. MySQL förklarar frågeförståelse

  3. SQL Server SELECT-satser som orsakar blockering

  4. Dela sträng efter avgränsningsposition med Oracle SQL