不经常用PDO,一直不知道数据绑定的时候的一个细节——不可使用同一个变量名为不同的符号进行数据绑定。
因为这样的话会导致在执行execute()时,不同符号都绑定了同一个值——最后一个赋予这个变量名的值。
比如:
$letters = array('a','b','c');
foreach($letters as $k=>$v){
if($pre->bindParam(":letter".$k,$v));
}
其中 :letter0 :letter1 :letter2 将会都被绑定为c。
应写成如下形式:
$letters = array('a','b','c');
for($i = 0;$i < $count;$i++){
if($pre->bindParam(":letter".$i,$letters[$i]));
}