I\'m trying to bind parametres for SQL query inside a loop:
$db = new PDO(\'mysql:dbname=test;host=localhost\', \'test\', \'\');
$stmt = $db->prepare(
The problem is that bindParam
requires a reference. It binds the variable to the statement, not the value. Since the variable in a foreach
loop is unset at the end of each iteration, you can't use the code in the question.
You can do the following, using a reference in the foreach
:
foreach ($reindex as $key => &$value) { //pass $value as a reference to the array item
$stmt->bindParam($key, $value); // bind the variable to the statement
}
Or you could do this, using bindValue
:
foreach ($reindex as $key => $value) {
$stmt->bindValue($key, $value); // bind the value to the statement
}