sql >> Databasteknik >  >> RDS >> Mysql

Hur kontrollerar man om insättningen misslyckas?

Det beror på.

Oftast vill du inte veta om en viss infogning misslyckades. Men snarare om din sida fungerar bra eller inte. Så i allmänhet bör din kod vara bara

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

med både annat och fångst är värdelösa.

Men ibland kanske du vill fånga ett visst fel . Använd i detta fall catch. Här är en kod från min 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;
    }
}

här kan du fånga ett visst fel och hantera det.



  1. Välj två oberoende tabeller i Mysql

  2. Hur man får gårdagens datum i PostgreSQL

  3. Om en tabell finns släpp tabell, skapa den, om den inte finns skapa den bara

  4. Hur tar man reda på om en sekvens initierades i den här sessionen?