Position actuelle: Accueil> Derniers articles> Utilisez mysqli_stmt :: Préparez-vous à gérer les opérations d'insertion

Utilisez mysqli_stmt :: Préparez-vous à gérer les opérations d'insertion

gitbox 2025-05-26

1. Pourquoi utiliser mysqli_stmt :: Préparez-vous à l'opération d'insertion?


  1. Grâce à des déclarations de prétraitement, la structure et les données des instructions SQL sont séparées, évitant le risque d'injection de l'utilisateur malveillant.

  2. Améliorer l'efficacité de l'exécution <br> Pour les instructions d'exécution répétées, le serveur de base de données n'a besoin que d'analyser la structure SQL une fois pour améliorer les performances.

  3. Structure du code effacer <br> La liaison des paramètres rend le code plus facile à lire et réduit la complexité des chaînes d'épissage.


2. Le processus complet de l'utilisation de mysqli_stmt :: Préparez-vous à l'insert de processus

Voici un exemple d'utilisation standard:

<code> <? php // 1. Connectez-vous à la base de données $ mysqli = new mysqli ("gitbox.net", "nom d'utilisateur", "mot de passe", "base de données");

// Vérifiez la connexion
if ($ mysqli-> connect_errno) {
Die ("La connexion a échoué:". $ mysqli-> connect_error);
}

// 2. Préparer les instructions SQL
$ sql = "Insérer dans les utilisateurs (nom d'utilisateur, e-mail, âge) valeurs (? ,?)";
$ stmt = $ mysqli-> prépare ($ sql);

if (! $ stmt) {
Die ("Le prétraitement a échoué:". $ mysqli-> error);
}

// 3. Bind Paramètres
// 'SSI' représente le type de paramètres, S représente la chaîne et je représente entier
$ username = "Alice";
$ email = " [email protected] ";
$ âge = 25;
$ stmt-> bind_param ("ssi", $ username, $ e-mail, $ Âge);

// 4. Exécuter l'instruction
if ($ stmt-> execute ()) {
Echo "Insérer avec succès, l'ID d'insert est:". $ stmt-> insert_id;
} autre {
Echo "L'exécution a échoué:". $ stmt-> erreur;
}

// 5. Déclaration et connexions étroites
$ stmt-> close ();
$ mysqli-> close ();
?>
</code>


3. Description détaillée de chaque étape

1. Créez un objet MySQLI pour se connecter à la base de données

Utilisez un nouveau MySQLI (hôte, utilisateur, pass, dbname) pour vous connecter à la base de données.
Il est recommandé d'utiliser des journaux de gestion des exceptions ou d'erreurs au lieu de Die () dans les environnements de production.

2. Créez une déclaration de prétraitement en utilisant Pread ()

  • Utiliser un point d'interrogation ? en tant que paramètre Paceholder dans les instructions SQL.

  • Si Preread () renvoie false , cela signifie une erreur de syntaxe ou une exception de connexion.

3. Bind Paramètre bind_param ()

  • Lier les variables dans les arguments de la déclaration.

  • Les types de paramètres sont représentés par des chaînes, les chaînes communes sont:

    • S String (String)

    • I INTEGER

    • D Double précision (double)

    • b binaire (blob)

  • La variable doit être une réussite de référence et doit être attribuée avant l'exécution.

4. EXECUTE EXECUTE ()

  • Appelez $ stmt-> execute () pour exécuter l'instruction de prétraitement.

  • Juger si l'exécution est réussie en fonction du résultat retourné.

5. Fermez la ressource

  • Fermez l'instruction de prétraitement $ stmt-> close () pour libérer les ressources du serveur.

  • Fermez la connexion de la base de données $ mysqli-> close () .


4. Précautions pour gérer les opérations d'insertion à l'aide de mysqli_stmt :: Préparer

  1. Les types de paramètres doivent correspondre correctement <br> Un type de paramètre incorrect peut entraîner une défaillance d'insertion des données ou des erreurs de conversion de type de données.

  2. La variable liée doit être attribuée avant l'exécution <br> Sinon, des valeurs nulles ou incorrectes peuvent être insérées.

  3. Manipulation des exceptions et journal d'erreur <br> Il n'est pas recommandé d'utiliser directement Die () . Vous pouvez utiliser le mécanisme d'exception pour assister aux erreurs pour assurer la robustesse du programme.

  4. Insert par lots <br> Si des inserts par lots sont nécessaires, vous pouvez utiliser les paramètres de liaison en boucle et l'exécution, mais il est recommandé d'activer les transactions pour assurer l'atomicité.

  5. Codage codage de caractère <br> Assurez-vous que le codage des caractères de la base de données et des scripts PHP est cohérent et évitez le code brouillé.

  6. insert_id attire l'attention <br> Lorsque vous utilisez $ stmt-> insert_id pour obtenir la clé primaire de mise en œuvre automatique, assurez-vous qu'il existe des colonnes auto-ondulées dans le tableau.