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
Mary-Kate Olsenoriginal
2024-12-11 05:26:10311parcourir

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 ...

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 .= "?,";
}

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);

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!

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