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

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

Linda Hamilton
Linda Hamiltonoriginal
2024-10-23 00:41:31923parcourir

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();
}

Message d'erreur

ERROR UPDATING CONTENT: SQLSTATE[HY000]: General error

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

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!

Déclaration:
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