Comment faire pour exécuter le bind_param() en PHP?
Je suis en train de faire le code suivant travail, mais je ne peut pas atteindre la execute()
ligne.
$mysqli = $this->ConnectLowPrivileges();
echo 'Connected<br>';
$stmt = $mysqli->prepare("SELECT `name`, `lastname` FROM `tblStudents` WHERE `idStudent`=?");
echo 'Prepared and binding parameters<br>';
$stmt->bind_param('i', 2 );
echo 'Ready to execute<br>'
if ($stmt->execute()){
echo 'Executing..';
}
} else {
echo 'Error executing!';
}
mysqli_close($mysqli);
Le résultat que j'obtiens est:
Connected
Prepared and binding parameters
De sorte que le problème devrait être à la ligne 5, mais la vérification de la manuel de bind_param()
je ne trouve pas d'erreur de syntaxe.
Pourquoi ne pas l'écho de l'erreur reçus pour aider à déboguer? Je pense que l'écho
J'ai mis à jour ma question, parce que maintenant je ne peux même pas exécuter la ligne suivante après
$stmt->error
, vous obtiendrez l'erreur exacte mysql est de se plaindre.J'ai mis à jour ma question, parce que maintenant je ne peux même pas exécuter la ligne suivante après
bind_param()
! @Todd Qui est utile, important d'avoir à l'esprit.OriginalL'auteur Lucio | 2013-04-01
Vous devez vous connecter pour publier un commentaire.
Lors de la liaison de paramètres dont vous avez besoin pour passer une variable qui est utilisée comme référence:
Voir la notice: http://php.net/manual/en/mysqli-stmt.bind-param.php
Noter que
$var
n'ont pas besoin d'être défini pour le lier. La suite est parfaitement valide:Oui, a ajouté le lien de ma réponse.
Tnx!!! J'ai eu le même problème, comme pour les 3 heures....
OriginalL'auteur MichaelRushton
ici c'est juste un simple explication
déclarer une variable à lier
OriginalL'auteur x00
Votre problème réel n'est pas à la ligne 5, mais plutôt à la ligne 1.
Vous essayez d'utiliser inutilisable pilote.
Alors que AOP fait exactement ce que vous voulez.
Après que tous les ans se sont écoulés depuis cette réponse a été écrite, une nouvelle version de PHP fonctionnalité apparue, appelé "argument de déballage". Ainsi, depuis la version 5.6, vous pouvez passer une valeur dans bind_param:
Mais encore vous avez des soucis avec vos informations de retour d'une requête préparée 🙂
parce que les gens sont à l'aide de mots comme vieux mysql ext, garde tous les inconvénients et l'insécurité
Inconvénients et de l'insécurité, je suis d'accord avec. "Inutilisable" est tout autre chose.
Bien sûr, je n'ai pas. Je suis heureux que vous savez ce que j'ai et n'ai pas d'expérience avec. Je vais vous laisser retourner à votre cheval maintenant
OriginalL'auteur Your Common Sense