Maison > développement back-end > tutoriel php > Comment puis-je lier dynamiquement les paramètres MySQL en PHP ?

Comment puis-je lier dynamiquement les paramètres MySQL en PHP ?

Patricia Arquette
Libérer: 2024-12-01 19:11:14
original
863 Les gens l'ont consulté

How Can I Dynamically Bind MySQL Parameters in PHP?

Liaison dynamique des paramètres de liaison MySQL en PHP

Comme vous l'avez découvert, la méthode bind_param dans l'extension MySQLi de PHP peut être limité en termes de gestion dynamique de plusieurs paramètres ou de requêtes sans paramètre. Vous trouverez ci-dessous des stratégies pour résoudre ce problème :

Utilisation de call_user_func_array

L'extrait de code suivant vous permet de créer et de lier dynamiquement un tableau de paramètres :

if (strnatcmp(phpversion(), '5.3') >= 0) {
    $refs = array();
    foreach ($arr as $key => $value)
        $array_of_params[$key] = &$arr[$key];
    call_user_func_array(array(&$stmt, 'bind_params'), $array_of_params);
}
Copier après la connexion

Utiliser PHP 5.6 Syntaxe

En PHP 5.6 et versions ultérieures, vous pouvez profiter de l'opérateur de déballage et de la méthode get_result() :

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 :

$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

Ces solutions offrent plus de flexibilité et des capacités de liaison dynamique pour votre MySQL requêtes.

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