Maison > développement back-end > tutoriel php > Comment résoudre l'erreur « Devrait être une référence » dans mysqli bind_param() ?

Comment résoudre l'erreur « Devrait être une référence » dans mysqli bind_param() ?

Susan Sarandon
Libérer: 2024-12-13 10:57:15
original
168 Les gens l'ont consulté

How to Solve the

Gestion de l'erreur « Devrait être une référence » dans mysqli bind_param()

Le message d'erreur « Paramètre 3 de mysqli_stmt::bind_param( ) censé être une référence, valeur donnée" se produit lors de la liaison d'une valeur à une instruction préparée. Pour résoudre ce problème, la valeur fournie doit être une référence à une variable réelle plutôt que la valeur elle-même.

Dans l'extrait de code fourni, le tableau $params contient des valeurs qui ne sont pas des références. Pour lier correctement les valeurs, vous pouvez utiliser l'approche suivante :

$query = "INSERT INTO test (id,row1,row2,row3) VALUES (?,?,?,?)";
$param_type = "isss";

// PHP 7+
$sql_stmt = mysqli_prepare($mysqli, $query);
mysqli_stmt_bind_param($sql_stmt, $param_type, ...$params);

// PHP 5.6 - 7.0
$sql_stmt = mysqli_prepare($mysqli, $query);
$arr = array($sql_stmt, $param_type);
foreach ($params as $param) {
    $arr[] = &$param;
}
call_user_func_array('mysqli_stmt_bind_param', $arr);

mysqli_stmt_execute($sql_stmt);
Copier après la connexion

Utilisation des références

Dans PHP 5.3 et versions antérieures, les références ne sont pas requises pour lier les valeurs à une déclaration préparée. Cependant, à partir de PHP 5.4, les références sont obligatoires. La raison de ce changement est d'éviter la copie indésirable de variables et les fuites de mémoire potentielles.

En utilisant des références, le processus de liaison devient plus efficace car les valeurs liées sont directement modifiées, éliminant ainsi le besoin d'affectations de variables supplémentaires.

Conclusion

N'oubliez pas que lorsque vous utilisez mysqli bind_param() avec des valeurs qui ne sont pas des références, vous devez transmettez-les comme références ou utilisez des approches alternatives pour lier correctement les valeurs. Cela garantit une exécution efficace et sans erreur de vos requêtes SQL.

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