Maison > développement back-end > tutoriel php > Pourquoi `mysqli_stmt::bind_param()` nécessite-t-il des références et comment puis-je corriger l'erreur « Paramètre attendu comme référence » ?

Pourquoi `mysqli_stmt::bind_param()` nécessite-t-il des références et comment puis-je corriger l'erreur « Paramètre attendu comme référence » ?

Mary-Kate Olsen
Libérer: 2024-12-06 08:56:11
original
354 Les gens l'ont consulté

Why Does `mysqli_stmt::bind_param()` Require References, and How Can I Fix the

Dépannage des erreurs "Le paramètre mysqli bind_param() devrait être une référence"

L'erreur "Paramètre 3 de mysqli_stmt::bind_param() censé être une référence, valeur donnée" indique un écart entre le type d'entrée attendu et la valeur fournie dans la méthode mysqli_bind_param().

Dans le code donné, vous utilisez call_user_func_array() pour transmettre un tableau de valeurs à mysqli_stmt_bind_param(). Cependant, mysqli_bind_param() s'attend à ce que les paramètres soient passés par référence, tandis que call_user_func_array() accepte soit des références, soit des valeurs.

Pour remédier à ce problème, vous pouvez utiliser la solution suivante fournie dans la documentation PHP :

$refs = array();
foreach ($params as $key => $value)
    $refs[$key] = &$params[$key];
call_user_func_array(array($statement, 'bind_param'), $refs);
Copier après la connexion

Ce code crée un tableau de références ($refs) aux éléments du tableau $params et transmet les $refs array vers mysqli_stmt_bind_param(), en garantissant que les paramètres sont passés par référence.

Vous pouvez également utiliser l'opérateur spread (disponible dans les versions PHP plus récentes) pour transmettre directement les éléments du tableau $params comme références :

call_user_func_array(array($statement, 'bind_param'), ...$params);
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!

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