Problème :
Lors de l'utilisation de la classe PHP PDO, les tentatives de gestion des erreurs entraînent le code signale des valeurs nulles et reste inactif.
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>
Solution :
PDO ne lance pas automatiquement les exceptions. Pour activer la gestion des exceptions, la ligne suivante doit être ajoutée avant de tenter d'exécuter une requête :
<code class="php">$connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);</code>
Explication :
En définissant le mode d'erreur PDO sur ERRMODE_EXCEPTION, toutes les erreurs liées au PDO seront levées comme exceptions. Le bloc try/catch peut ensuite être utilisé pour gérer ces exceptions et fournir des messages d'erreur significatifs aux utilisateurs ou aux systèmes de journalisation.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!