Maison > développement back-end > tutoriel php > Comment utiliser efficacement les instructions préparées par MySQLi pour améliorer la sécurité et l'efficacité de la base de données ?

Comment utiliser efficacement les instructions préparées par MySQLi pour améliorer la sécurité et l'efficacité de la base de données ?

Mary-Kate Olsen
Libérer: 2024-12-13 03:59:09
original
553 Les gens l'ont consulté

How to Effectively Use MySQLi Prepared Statements to Enhance Database Security and Efficiency?

Relevés préparés MySQL : un aperçu complet

Les relevés préparés MySQL offrent une sécurité et une efficacité améliorées pour les interactions avec les bases de données. Cependant, démarrer avec eux peut être difficile.

Erreur : utilisation de l'instruction non liée

Dans le code fourni, l'erreur provient de la tentative d'exécution d'une instruction préparée "$ stmt" sans lui lier de paramètres. La méthode "mysqli_stmt_prepare()" de MySQLi renvoie un objet représentant l'instruction préparée, mais la liaison des espaces réservés avec "mysqli_stmt_bind_param()" est une étape cruciale avant de l'exécuter.

Syntaxe de liaison d'instruction préparée :

$stmt->bind_param('data_type', $variable);
Copier après la connexion

Dans cet exemple, les types de données sont 's' (chaîne) et 'i' (entier), suivis des variables PHP contenant les valeurs à insérer.

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

$stmt->bind_param('si', $name, $age);
Copier après la connexion

Une fois les paramètres liés, l'exécution peut continuer :

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

Exemple complet

Voici un exemple complet couvrant la connexion, l'insertion et la sélection avec gestion des erreurs à l'aide de préparé déclarations :

connect_error) {
    die('Failed to connect: ' . $mysqli->connect_error);
}

// Insertion
$stmt = $mysqli->prepare("INSERT INTO users (name, age) VALUES (?, ?)");
$stmt->bind_param('si', $name, $age);

$name = 'Bob';
$age = 30;
$stmt->execute();

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

$name = 'Bob';
$stmt->execute();
$result = $stmt->get_result();

// Fetch and display results
while ($row = $result->fetch_assoc()) {
    printf("%s (%s)\n", $row['name'], $row['age']);
}

// Closing
$stmt->close();
$mysqli->close();
?>
Copier après la connexion

En suivant ces directives, vous pouvez utiliser efficacement les instructions préparées en PHP avec MySQLi, améliorant ainsi la sécurité et l'efficacité de l'interaction avec la base de données.

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