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