Unterschied zwischen bindParam und bindValue

Der Unterschied zwischen bindParam und bindValue ist im Grunde in einem Satz zu erklären: Bei bindParam werden im Gegensatz zu bindValue nachträgliche Änderungen der Variablen berücksichtigt.

Beispiel:

bindParam

$sex = 'male';
$s = $dbh->prepare('SELECT name FROM students WHERE sex = :sex');
$s->bindParam(':sex', $sex); // use bindParam to bind the variable
$sex = 'female';
$s->execute(); // executed with WHERE sex = 'female'

bindValue

$sex = 'male';
$s = $dbh->prepare('SELECT name FROM students WHERE sex = :sex');
$s->bindValue(':sex', $sex); // use bindParam to bind the variable
$sex = 'female';
$s->execute(); // executed with WHERE sex = 'male'

Quelle vom Beispiel: https://stackoverflow.com/questions/1179874/what-is-the-difference-between-bindparam-and-bindvalue//