Maison > développement back-end > tutoriel php > Pourquoi mes instructions préparées par mysqli échouent-elles et comment puis-je lier correctement les paramètres ?

Pourquoi mes instructions préparées par mysqli échouent-elles et comment puis-je lier correctement les paramètres ?

Barbara Streisand
Libérer: 2024-12-12 20:04:16
original
606 Les gens l'ont consulté

Why Do My mysqli Prepared Statements Fail, and How Can I Properly Bind Parameters?

Utilisation des déclarations préparées mysqli

Premiers pas avec les déclarations préparées

Vous essayez de utilisez des instructions préparées, mais votre code rencontre une erreur. Le problème vient d'une étape manquante : lier les paramètres à l'instruction préparée.

Paramètres de liaison

Les instructions préparées nécessitent que vous liez des paramètres avant de s'exécuter. Ce processus associe des variables externes aux espaces réservés (?) dans la requête SQL.

$name = 'one';
$age = 1;

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

// Bind parameters (typehint: string, integer)
$stmt->bind_param('si', $name, $age);

// Now you can execute
$stmt->execute();
Copier après la connexion

Ai-je besoin de mysqli pour les instructions préparées ?

Oui, mysqli est requis pour les déclarations préparées.

Complet Exemple

Connexion :

$mysqli = new mysqli("localhost", "root", "root", "test");
if ($mysqli->connect_errno) {
    echo "Connection failed: " . $mysqli->connect_error;
}
Copier après la connexion

Insertion :

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

// Bind parameters (typehint: string, integer)
$stmt->bind_param('si', $name, $age);

// Insert row
$stmt->execute();
Copier après la connexion

Sélection avec erreur Manipulation :

$stmt = $mysqli->prepare("SELECT * FROM users WHERE name = ?");
$stmt->bind_param('s', $name);

$stmt->execute();

if ($stmt->errno) {
    echo "Error: " . $stmt->error;
} else {
    $result = $stmt->get_result();
}

// Process result
Copier après la connexion

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