Maison >base de données >tutoriel mysql >Pourquoi est-ce que je reçois « Appel à une fonction membre exécuter () sur un non-objet » avec les instructions préparées mysqli ?

Pourquoi est-ce que je reçois « Appel à une fonction membre exécuter () sur un non-objet » avec les instructions préparées mysqli ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-15 01:30:11331parcourir

Why Am I Getting

Comprendre les instructions préparées par Mysqli

La préparation des instructions est une pratique cruciale pour prévenir les vulnérabilités d'injection SQL. Cependant, une erreur courante rencontrée lors de l'utilisation des instructions préparées par mysqli est la réception de l'erreur "Appel à une fonction membre exécuter() sur un non-objet."

Pour résoudre ce problème et utiliser efficacement les instructions préparées par mysqli, vous' Vous devrez comprendre ce qui suit :

  1. Liaison des paramètres : Après avoir préparé une instruction, vous devez lier les paramètres aux espaces réservés (?) dans le Requête SQL. Cela se fait à l'aide de la méthode bind_param().
  2. Exécution : Une fois les paramètres liés, vous pouvez exécuter l'instruction préparée à l'aide de la méthode execute().

Voici un exemple pour illustrer le processus complet :

<?php

// Connect to MySQL
$mysqli = new mysqli("localhost", "root", "root", "test");

// Prepare statement
$stmt = $mysqli->prepare("INSERT INTO users (name, age) VALUES (?, ?)");

// Bind parameters
$name = 'one';
$age = 1;
$stmt->bind_param('si', $name, $age);

// Execute statement
$stmt->execute();

// Insert another row with different values
$name = 'two';
$age = 2;
$stmt->bind_param('si', $name, $age);
$stmt->execute();

?>

L'utilisation de mysqli pour les instructions préparées est fortement recommandée car c'est le méthode recommandée pour se protéger contre l’injection SQL en PHP. L'exemple ci-dessus couvre non seulement la connexion, l'insertion et la sélection, mais fournit également la gestion des erreurs.

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