Maison > base de données > tutoriel mysql > Pourquoi mes exceptions PDO renvoient-elles des valeurs nulles et ne s'exécutent-elles pas ?

Pourquoi mes exceptions PDO renvoient-elles des valeurs nulles et ne s'exécutent-elles pas ?

Susan Sarandon
Libérer: 2024-10-28 12:06:01
original
468 Les gens l'ont consulté

Why Are My PDO Exceptions Throwing Null Values and Not Executing?

Comment gérer les exceptions PDO

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal