Problem:
Bei der Verwendung der PHP-PDO-Klasse führen Versuche, Fehler zu behandeln, zu Der Code meldet Nullwerte und bleibt inaktiv.
Code:
<code class="php">$connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // Exception handling is enabled $id = 33; $name = "Mario Bros."; $url = "http://nintendo.com"; $country = "jp"; try { $sql = "UPDATE table_users SET name = :name, url = :url, country = :country WHERE user_id = :user_id"; $statement = $connection->prepare($sql); $statement->bindParam(':user_id', trim($id), PDO::PARAM_INT); $statement->bindParam(':name', trim($name), PDO::PARAM_STR); $statement->bindParam(':url', trim($url), PDO::PARAM_STR); $statement->bindParam(':country', trim($country), PDO::PARAM_STR, 2); $status = $statement->execute(); } catch (PDOException $e) { echo $e->getMessage(); }</code>
Lösung:
PDO löst nicht aus Ausnahmen automatisch. Um die Ausnahmebehandlung zu aktivieren, muss die folgende Zeile hinzugefügt werden, bevor versucht wird, Abfragen auszuführen:
<code class="php">$connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);</code>
Erklärung:
Durch Festlegen des PDO-Fehlermodus auf ERRMODE_EXCEPTION, Alle PDO-bezogenen Fehler werden als Ausnahmen ausgelöst. Der try/catch-Block kann dann verwendet werden, um diese Ausnahmen zu behandeln und aussagekräftige Fehlermeldungen an Benutzer oder Protokollierungssysteme bereitzustellen.
Das obige ist der detaillierte Inhalt vonWarum werfen meine PDO-Ausnahmen Nullwerte aus und werden nicht ausgeführt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!