Impossible de passer des paramètres par référence dans MySQLi
Je suis en train de passer une chaîne de caractères dans mon MySQLi déclaration préparée à l'avance, mais il me donne l'erreur:
Ne peut pas passer des paramètres par référence dans MySQLi
Voici le code correspondant:
$kv = json_encode(array($key => $value));
$stmt->prepare("insert into rules (application_id, ruletype, rule_name, rule_info) values (?, ?, ?, ?);");
$stmt->bind_param('iiss', $application_id, 1, $config_name, $kv);
Pourquoi ne pas simplement intégrer la
'1'
directement dans la requête? Si c'est une valeur statique, il n'y a pas de point d'en faire un paramètre de limite. Sinon, il suffit de faire $one = 1;
et puis la passer dans $one
dans l'appel de liaison. Vous ne pouvez pas faire une référence à une constante.OriginalL'auteur chustar | 2011-04-06
Vous devez vous connecter pour publier un commentaire.
'iiss" et " 1 " ne peut être adopté comme référence parce qu'ils ne sont pas des variables mais des constantes de chaîne. Vous devez créer deux variables avec des valeurs mentionnées et de les transmettre, car bind_param() fonction attend les variables passées par référence.
Edit: c'est le " 1 " qui est à l'origine du problème, pas le nom du paramètre d'être lié ('iiss'). Désolé pour la désinformation, je suis dans le rush quand je répondais à votre question.
Oui, vous avez raison, mon mauvais - j'ai écrémé en creux la question et a remarqué que l'OP n'est pas en passant un argument comme variable. Je vais modifier la réponse à votre entrée.
OriginalL'auteur N.B.
Vérifier
$config_name
argument.'1'
passe pas comme referncesOriginalL'auteur saint