Maison > développement back-end > tutoriel php > Comment corriger les erreurs « Appel à une fonction membre bind_param() sur un non-objet » et « mysqli_fetch_array() : l'argument n°1 doit être de type mysqli_result » dans MySQLi ?

Comment corriger les erreurs « Appel à une fonction membre bind_param() sur un non-objet » et « mysqli_fetch_array() : l'argument n°1 doit être de type mysqli_result » dans MySQLi ?

Linda Hamilton
Libérer: 2024-12-21 15:04:14
original
378 Les gens l'ont consulté

How to Fix

Propagation des erreurs MySQL : résolution des problèmes mysqli_fetch_array() et Bind_param()

Le problème :

Des erreurs telles que "Appel à une fonction membre bind_param() sur un non-object" et "mysqli_fetch_array() : L'argument n°1 doit être de type mysqli_result" peuvent survenir lors de l'utilisation de MySQLi dans certains environnements. Ce problème provient généralement d'un manque de configuration pour le rapport d'erreurs MySQL en PHP.

Comment résoudre :

1. Activer le rapport d'erreurs MySQL

Commencez par activer le rapport d'erreurs MySQL en PHP en ajoutant la ligne suivante avant d'établir la connexion MySQLi :

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
Copier après la connexion

Cette configuration garantira que toutes les erreurs MySQL sont propagées sous forme d'exceptions PHP, les rendant visibles et exploitables.

2. Utiliser les instructions préparées

Remplacez toutes les variables PHP explicites dans la requête SQL par des points d'interrogation et exécutez la requête à l'aide d'une instruction préparée. Cette approche permet d'éviter les erreurs de syntaxe et les vulnérabilités d'injection.

// Example using MySQLi prepared statements

$mysqli = new mysqli(...) or throw new Exception('Could not connect to DB');
$query = 'SELECT id, description FROM tbl_page_answer_category WHERE cur_own_id = ?';
$stmt = $mysqli->prepare($query);
$stmt->bind_param('i', $cur_id);
$stmt->execute();
$stmt->bind_result($uid, $desc);
Copier après la connexion

Conseils supplémentaires

  • Assurez-vous que la sortie d'erreur est activée, soit à l'écran pour le développement serveurs ou via les journaux d'erreurs pour les serveurs en direct.
  • Examinez attentivement le message d'erreur et identifiez le message d'erreur réel. problème.
  • Faites confiance au message d'erreur et supposez que les erreurs qu'il signale sont authentiques.
  • Mettez en œuvre des techniques de débogage de base pour vérifier l'exécution du code et l'intégrité des données d'entrée.

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