sql >> Database >  >> RDS >> Mysql

Hoe kan ik een foutmelding krijgen bij het uitvoeren van meerdere query's met PDO?

Ik vond het antwoord in het gebruik van een voorbereide verklaring. Nadat ik alle rijensets heb doorlopen, kan ik controleren of de laatst uitgevoerde query een fout heeft veroorzaakt met behulp van $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. Zijn dynamische mysql-query's met sql-escaping net zo veilig als voorbereide instructies?

  2. Hoofdlettergevoeligheid van ID forceren in orakel

  3. Datumbereiken vergelijken

  4. Extreem eenvoudige PHP en Mysql