Maison > développement back-end > tutoriel php > Comment puis-je lier dynamiquement des paramètres aux requêtes MySQL en PHP ?

Comment puis-je lier dynamiquement des paramètres aux requêtes MySQL en PHP ?

Linda Hamilton
Libérer: 2024-12-03 01:00:14
original
985 Les gens l'ont consulté

How Can I Dynamically Bind Parameters to MySQL Queries in PHP?

Liaison dynamique des paramètres MySQL en PHP

Dans votre application, vous rencontrez des scénarios dans lesquels vous devez lier dynamiquement des paramètres à des requêtes SQL préparées. Bien que votre approche actuelle fonctionne, elle manque de polyvalence, en particulier lorsqu'il s'agit d'un nombre variable de paramètres.

Pour obtenir la flexibilité souhaitée, vous pouvez exploiter la technique suivante en utilisant call_user_func_array() et l'opérateur de décompression ($... var):

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

Cette méthode get_custom_result() mise à jour vous permet de spécifier les types et les valeurs des paramètres de manière dynamique via les arguments $types et $params, respectivement. La syntaxe ...$params décompresse le tableau, en passant chaque valeur individuellement à la méthode bind_param().

Par exemple, considérons les valeurs de requête et de paramètre suivantes :

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

$params = ['1', 'Tk'];
Copier après la connexion

Vous pouvez exécutez maintenant la requête avec la liaison de paramètres dynamique :

$res = $output->get_custom_result($sql, 'ss', $params);

while ($row = $res->fetch_assoc()) {
    echo $row['fieldName'] .'<br>';
}
Copier après la connexion

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