Maison > développement back-end > tutoriel php > bindParam vs bindValue : quelle est la principale différence dans le PDO de PHP ?

bindParam vs bindValue : quelle est la principale différence dans le PDO de PHP ?

DDD
Libérer: 2024-12-18 16:04:24
original
213 Les gens l'ont consulté

bindParam vs. bindValue: What's the Key Difference in PHP's PDO?

Comprendre la distinction entre bindParam et bindValue

Question :

Quelle est la différence fondamentale entre PDOStatement::bindParam() et PDOStatement::bindValue()?

Réponse :

Selon l'entrée manuelle PDOStatement::bindParam, la distinction clé réside dans le comportement de référencement des deux méthodes. bindParam lie les variables en tant que références, tandis que bindValue lie les valeurs des variables. Ce comportement de référencement entre en jeu lors de l'exécution de PDOStatement::execute().

bindParam Exemple :

Considérez le code suivant :

$sex = 'male';
$s = $dbh->prepare('SELECT name FROM students WHERE sex = :sex');
$s->bindParam(':sex', $sex); // bind the variable using bindParam
$sex = 'female';
$s->execute(); // execute with WHERE sex = 'female'
Copier après la connexion

Ici, bindParam lie $sex comme référence. Lorsque l'instruction s'exécute, elle fait référence à la valeur actuelle de $sex, qui est devenue « femelle ». Par conséquent, la requête récupérera les résultats pour les étudiantes « féminines ».

Exemple de bindValue :

Examinons maintenant un exemple similaire utilisant bindValue :

$sex = 'male';
$s = $dbh->prepare('SELECT name FROM students WHERE sex = :sex');
$s->bindValue(':sex', $sex); // bind the variable's value using bindValue
$sex = 'female';
$s->execute(); // execute with WHERE sex = 'male'
Copier après la connexion

Dans ce cas, bindValue lie la valeur de $sex au moment de la liaison, qui est « mâle ». Ainsi, la requête récupérera toujours les résultats pour les étudiants « de sexe masculin », même si la valeur de $sex est modifiée ultérieurement. Cela démontre le comportement de non-référencement de bindValue.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal