无法通过引用传递参数2 - PDO [复制]

This question already has an answer here:

I am experiencing this error:

"Cannot pass parameter 2 by reference"

I looked up several threads, not a single solution actually worked for me, it might be a really stupid mistake/type..?

$stmt = $dbh->prepare("INSERT INTO messages (message, sender, key) VALUES (:message, :sender, :key)");
$stmt -> bindParam(':message', $message);
$stmt -> bindParam(':sender', 'Smith');
$stmt -> bindParam(':key', 'Test-Key');
$stmt -> execute();

This is my code.. The error is pointing at line 32, which is the "sender" line... I personally think it's the message line instead.

Thank you for your help! :)

</div>

The bindParam() method binds the parameter to a variable. Strings are what are called constants.

In order to make this work you have to pass a variable to the method, like this:

// Prepare the statement
$stmt = $dbh->prepare("INSERT INTO messages (message, sender, key) VALUES (:message, :sender, :key)");

// Bind variables to the parameters
$stmt->bindParam(':message', $message);
$stmt->bindParam(':sender', $sender);
$stmt->bindParam(':key', $key);

// Give the bound variables a value
$message = 'The message...';
$sender = 'Smith';
$key = 'Test-Key';

// And then execute the statement
$stmt->execute();