statements - php pdo tutorial deutsch




PHP PDO bindParam fiel in eine foreach (2)

Aber dank dieser guys . Ich habe herausgefunden, dass Sie den Wert durch Referenz mit einem & vor so übergeben müssen:

foreach($Fields as $Name => &$Value){
    $Query->bindParam(':'.$Name, $Value, PDO::PARAM_STR);
}

Das hat mich verrückt gemacht.

Aktuelles Zitat von guys :

Vili 28-Mai-2010 12:01

Das funktioniert ($ val by reference):

<?php
foreach ($params as $key => &$val){
    $sth->bindParam($key, $val);
}
?>

Dies wird fehlschlagen ($ val by value, da bindParam & $ variable benötigt):

<?php
foreach ($params as $key => $val) {
    $sth->bindParam($key, $val);
}
?>

Ich hatte eine Schleife wie diese:

foreach($Fields as $Name => $Value){
    $Query->bindParam(':'.$Name, $Value, PDO::PARAM_STR);
}

Nichts kompliziert. Jeder Wert wurde jedoch auf den letzten Wert im Array ( $Fields ) gesetzt.

Wie kann ich das beheben?


Wenn Sie nicht die Fähigkeit haben müssen, die Variable synchron mit dem gebundenen Parameter zu halten, bevor die Abfrage ausgeführt wird (was meiner Erfahrung nach 99,9% der Zeit ist), ist es wahrscheinlich besser, PDOStatement::bindValue() anstelle von PDOStatement::bindParam() :

foreach ($Fields as $Name => $Value) {
    $Query->bindValue(':' . $Name, $Value, PDO::PARAM_STR);
}






pdo