<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Cet article n'a rien à voir avec le code,Utilisé pour produire le contenu de l'article uniquement</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> <span class="hljs-string"><<<EOT
<h1>utiliserPDOQuelles sont les erreurs et solutions courantes lors de la mise à jour des données?</h1>
<hr>
<p>existerPHPEn cours de développement,PDO(PHP Data Objects)En raison de sa sécurité et de sa portabilité,Il est largement utilisé dans les opérations de base de données。当我们utiliserPDOLorsque la mise à jour des données,Il y a souvent des erreurs,S'il ne peut pas être localisé et résolu à temps,Peut entraîner un uplé des données,Même apporte des risques de sécurité。Cet article résumera les erreurs courantes et les solutions correspondantes。</p>
<h2>1. 忘记utiliser预处理语句中的参数绑定</h2>
<p>很多初学者exister书写更新语句时,Épisser les variables directement àSQLEn chaîne,Par exemple:</p>
<pre><code>\$sql = "UPDATE users SET email = '\$email' WHERE id = \$id";
\$pdo->exec(\$sql);
Cette méthode d'écriture provoque non seulement le risque d'injection SQL, mais peut également provoquer des échecs de mise à jour car la variable contient des caractères spéciaux. La bonne façon de le faire est d'utiliser les espaces réservés et les liaisons:
\$sql = "UPDATE users SET email = :email WHERE id = :id";
\$stmt = \$pdo->prepare(\$sql);
\$stmt->execute([':email' => \$email, ':id' => \$id]);
Certains développeurs oublient d'exécuter EXECUTE () après avoir préparé l'instruction SQL et lié les paramètres, ce qui entraîne l'instruction de mise à jour qui n'est pas réellement exécutée. Assurez-vous d'appeler \ $ stmt-> execute () après la liaison.
Par exemple, l'écriture définit comme set ou manquant où les conditions. La solution consiste à faire bon usage de Try ... Catch pour attraper des exceptions et afficher des informations d'erreur spécifiques via \ $ stmt-> errorInfo () ou \ $ pDo-> errorInfo () .
Si : e-mail est utilisé dans l'instruction SQL , mais ['e-mail' => \ $ e-mail] (Colon manquant), la liaison échouera. Le nom du paramètre dans SQL doit être conservé cohérent avec la touche de tableau liée.
L'OPD ne lancera pas d'exceptions par défaut, ce qui rend de nombreuses erreurs difficiles à détecter. Il est recommandé d'activer le mode d'erreur lors de la création d'une instance de PDO:
\$pdo = new PDO(\$dsn, \$user, \$pass, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
]);
De cette façon, le problème peut être situé plus rapidement lorsqu'une erreur se produit.
Mettre à jour le fonctionnement s'il n'y a pas de condition appropriée, les données de l'ensemble du tableau peuvent être mises à jour par erreur. Assurez-vous de vérifier si les conditions sont correctes pour éviter les conséquences catastrophiques.
Lorsque vous utilisez PDO pour la mise à jour des données, les erreurs courantes incluent: ne pas utiliser la liaison des paramètres, oublier d' exécuter () , des erreurs de syntaxe SQL, une liaison de paramètres incohérentes, ne pas activer le mode d'erreur et où les problèmes de condition. La maîtrise de ces problèmes et solutions communs peut aider les développeurs à localiser et à résoudre rapidement les problèmes des échecs de mise à jour, tout en améliorant la sécurité et la stabilité de leur code.
Eot;Étiquettes associées:
PDO