Maison > développement back-end > tutoriel php > Comment réaliser une liaison de paramètres dynamiques dans PHP MySQLi ?

Comment réaliser une liaison de paramètres dynamiques dans PHP MySQLi ?

Susan Sarandon
Libérer: 2024-12-06 00:46:11
original
933 Les gens l'ont consulté

How to Achieve Dynamic Parameter Binding in PHP MySQLi?

Liaison dynamique pour PHP MySQLi

Liaison de paramètres dynamiques

Dans PHP MySQLi, le bind_param () permet de lier des paramètres à une instruction préparée. Cependant, pour la liaison dynamique, où les paramètres peuvent varier en quantité et en type, la méthode par défaut est insuffisante.

Solution

Pour surmonter cette limitation, la solution suivante peut être employé :

Utilisation de Unpacking Operator et get_result()

Avec PHP 5.6 et versions ultérieures, l'opérateur de décompression (...) et get_result() peuvent être utilisés pour simplifier la liaison dynamique :

public function get_custom_result($sql, $types = null, $params = null) {
    $stmt = $this->mysqli->prepare($sql);
    $stmt->bind_param($types, ...$params);
    if (!$stmt->execute()) return false;
    return $stmt->get_result();
}
Copier après la connexion

Exemple

Cet exemple illustre comment pour lier dynamiquement les paramètres et récupérer le résultat :

$mysqli = new database(DB_HOST, DB_USER, DB_PASS, DB_NAME);
$output = new search($mysqli);

$sql = "SELECT * FROM root_contacts_cfm WHERE root_contacts_cfm.cnt_id = ?
        AND root_contacts_cfm.cnt_firstname = ?
        ORDER BY cnt_id DESC";

$res = $output->get_custom_result($sql, 'ss', array('1', 'Tk'));
while ($row = $res->fetch_assoc()) {
    echo $row['fieldName'] . '<br>';
}
Copier après la connexion

Cette approche fournit un moyen dynamique de lier des paramètres en fonction des paramètres transmis à la fonction appeler.

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