Comment dépanner « SQLSTATE[HY000] : erreur générale » dans les mises à jour de la base de données Laravel PDO ?

Linda Hamilton
Libérer: 2024-10-23 00:41:31
original
922 Les gens l'ont consulté

How to Troubleshoot

Résolution de l'erreur PDO : "SQLSTATE[HY000] : erreur générale" lors de la mise à jour de la base de données

Dans cet article, nous allons plonger dans un problème rencontré lors de la mise à jour d'une base de données à l'aide de PHP Data Objects (PDO) et résolvez le message déroutant "SQLSTATE[HY000] : Erreur générale".

Énoncé du problème

Le problème fourni le code tente de mettre à jour une base de données à l’aide d’une instruction préparée. Cependant, malgré le succès de la mise à jour, un message d'erreur est renvoyé.

$page = 'my_page';
$section = 'content';
$new_content = 'new_content';
$old_content = 'old_content';

try {
    $stmt = $pdo->prepare("UPDATE $page SET $section = :new_content WHERE $section = '$old_content'");
    $stmt->execute(array(
        'new_content' => $new_content
    ));
    $result = $stmt->fetchAll(); // <-- This line may cause the issue
    echo "Database updated!";
}
catch(PDOException $e) {
    echo 'ERROR UPDATING CONTENT: ' . $e->getMessage();
}
Copier après la connexion

Message d'erreur

ERROR UPDATING CONTENT: SQLSTATE[HY000]: General error
Copier après la connexion

Solution

Le problème réside dans l’appel à fetchAll() dans le code. fetchAll() est généralement utilisé pour récupérer les données d'une requête réussie. Toutefois, pour les requêtes de mise à jour ou d’insertion, cette instruction n’est pas nécessaire. Le supprimer devrait résoudre le problème.

$result = $stmt->fetchAll(); // <-- Remove this line
Copier après la connexion

Une fois l'instruction fetchAll() supprimée, le code devrait mettre à jour la base de données avec succès sans produire de message d'erreur.

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
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!