Maison >développement back-end >tutoriel php >Pourquoi est-ce que je reçois « Appel à une fonction membre Prepare() sur un non-objet » dans mon code PDO ?

Pourquoi est-ce que je reçois « Appel à une fonction membre Prepare() sur un non-objet » dans mon code PDO ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-19 19:36:03768parcourir

Why Am I Getting

Appel PDO à la fonction membre Prepare sur un non-objet : causes et solutions

Lors de la tentative d'utilisation de la méthode prepare() du Objet PDO, une erreur peut survenir : "Appel à une fonction membre préparer() sur un non-objet." Cette erreur indique que l'objet $pdo n'est pas correctement initialisé dans la fonction à l'origine du problème.

Dans l'extrait de code fourni, la fonction repetirDados() ne déclare pas l'objet $pdo ni ne le transmet en tant que paramètre. . Pour résoudre cette erreur, vous pouvez soit :

  • Passer l'objet PDO en paramètre :
    Modifier la définition de la fonction pour inclure l'objet $pdo en tant qu'argument, en vous assurant qu'il est passé à la fonction lorsqu'il est appelé.
  • Déclarez l'objet PDO globalement : (Non recommandé)
    Vous pouvez déclarer l'objet $pdo dans l'espace de noms global et le rendre accessible à la fonction en ajoutant global $pdo; au début de la fonction. Cependant, cette approche n'est pas préférée car elle peut conduire à des conflits potentiels si un autre code accède à la même variable globale.

Équivalent PDO des fonctions MySQL

Vous avez également posé des questions sur l'équivalent PDO de la fonction MySQL mysql_num_rows. PDO fournit une méthode alternative appelée rowCount() qui sert le même objectif. Il renvoie le nombre de lignes affectées dans l'ensemble de résultats après l'exécution d'une requête.

Dans votre code, vous pouvez utiliser $stmt->rowCount() au lieu de $results == 0 pour vérifier si des lignes ont été renvoyé par la requête.

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