sql >> Database >  >> RDS >> Mysql

Hoe controleer je of het invoegen mislukt?

Het hangt er van af.

Meestal wil je niet weten of een bepaalde insert is mislukt. Maar eerder of uw site goed werkt of niet. Dus in het algemeen zou je code gewoon

. moeten zijn
$stmt = $db_con->prepare(" INSERT INTO mytable ( col ) VALUES ( ? ) ");
$stmt->execute( array('anything') );
echo 'successful';

met beide andere en vang dat het nutteloos is.

Soms wil je echter een bepaalde fout . opvangen . Gebruik in dit geval vangst. Hier is een code uit mijn artikel :

try {
    $pdo->prepare("INSERT INTO users VALUES (NULL,?,?,?,?)")->execute($data);
} catch (PDOException $e) {
    if ($e->getCode() == 1062) {
        // Take some action if there is a key constraint violation, i.e. duplicate name
    } else {
        throw $e;
    }
}

hier kun je een bepaalde fout opvangen en deze afhandelen.



  1. Selecteer waarden tussen startdatum en einddatum

  2. Hoe kan ik controleren of de mysql-tabelkolom zelfs bestaat?

  3. ResultSet ->getString() crasht wanneer de waarde>=16 is

  4. Datetime datatype in MySQL maakt fout