Maison >développement back-end >tutoriel php >Pourquoi mon code PHP génère-t-il une erreur « Impossible de transmettre le paramètre 2 par référence » ?
Comprendre l'erreur "Impossible de transmettre le paramètre 2 par référence" de PHP
En PHP, passer des paramètres par référence permet aux modifications apportées à la variable transmise de être reflété dans la variable d'origine. Cependant, si un paramètre devrait être transmis par référence mais qu'il ne l'est pas, cela peut entraîner l'erreur « Impossible de transmettre le paramètre 2 par référence ».
Scénario d'erreur spécifique : requête de MISE À JOUR avec comparaison de dates
Considérez le code PHP suivant :
$selectedDate = date('d-m-Y', ($createDate)); $sql = "UPDATE Session SET Active = ? WHERE DATE_FORMAT(SessionDate,'%Y-%m-%d' ) <= ?"; $update = $mysqli->prepare($sql); $update->bind_param("is", 0, $selectedDate); // Line 13
Dans cet exemple, la ligne 13 tente pour lier deux paramètres à l'instruction préparée :
Cependant, le deuxième paramètre devrait être une référence à une variable, indiquée par le « s » dans la chaîne de type « est ». Puisqu'il n'est pas passé par référence, l'erreur "Impossible de transmettre le paramètre 2 par référence" est générée.
Résolution : Passer une référence de variable
Pour résoudre cette erreur, transmettez une référence variable au deuxième paramètre, comme indiqué ci-dessous :
$isActive = 0; $update->bind_param("is", $isActive, $selectedDate);
En passant $isActive par référence, les modifications qui y sont apportées dans le fichier préparé La déclaration sera reflétée dans la variable d'origine.
Comprendre les références en PHP
Pour plus d'informations sur les références en PHP, vous pouvez vous référer à la documentation suivante : http:/ /php.net/manual/en/langue.references.pass.php.
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!