我有一个这样的循环:
foreach($Fields as $Name => $Value){
$Query->bindParam(':'.$Name, $Value, PDO::PARAM_STR);
}
没什么复杂的。但是,每个值都设置为数组中的最后一个值 ($Fields
)。
我该如何解决?
最佳答案
但是,多亏了这个guys .我发现你需要像这样之前用 &
通过引用传递值:
foreach($Fields as $Name => &$Value){
$Query->bindParam(':'.$Name, $Value, PDO::PARAM_STR);
}
这让我抓狂。
实际报价来自PHP.net :
Vili 28-May-2010 12:01
This works ($val by reference):
<?php
foreach ($params as $key => &$val){
$sth->bindParam($key, $val);
}
?>
This will fail ($val by value, because bindParam needs &$variable):
<?php
foreach ($params as $key => $val) {
$sth->bindParam($key, $val);
}
?>
关于PHP PDO bindParam 落在了 foreach 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12144557/