Maison > développement back-end > tutoriel php > Comment puis-je lier efficacement plusieurs paramètres dans les requêtes MySQLi ?

Comment puis-je lier efficacement plusieurs paramètres dans les requêtes MySQLi ?

Mary-Kate Olsen
Libérer: 2024-12-11 05:26:10
original
320 Les gens l'ont consulté

How Can I Efficiently Bind Multiple Parameters in MySQLi Queries?

Liaison flexible pour plusieurs paramètres dans une requête MySQLi

Actuellement, pour lier plusieurs paramètres dans une requête MySQLi, la structure répétitive suivante est utilisée :

if ($words_total == 1)
{
    $statement -> bind_param("s", $words[0]);
}
// ... more if-else conditions for each possible number of parameters ...
Copier après la connexion

Pour calculer le nombre de points d'interrogation nécessaires dans la requête, le code suivant est utilisé :

$marks = "";
for($i = 1; $i<=$words_total; $i++) {
    if ($i == $words_total)
        $marks .= "?";
    else
        $marks .= "?,";
}
Copier après la connexion

Approche améliorée avec le déballage des arguments

Heureusement, PHP 5.6 introduit l'opérateur de déballage des arguments (...), qui simplifie la liaison de plusieurs paramètres . Au lieu de s'appuyer sur des chaînes de type statique, l'opérateur peut être utilisé avec un tableau :

// create an array of parameter values
$parameters = [$words[0], $words[1], ... $words];

// create a type string dynamically
$types = str_repeat('s', count($parameters));

// bind the array using argument unpacking
$statement -> bind_param($types, ...$parameters);
Copier après la connexion

Avec cette approche, la liaison peut être gérée dynamiquement quel que soit le nombre de paramètres.

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