插入wih pdo中的BindValue循环

时间:2014-01-11 15:59:29

标签: php mysql pdo

在我的表'config'中我有38个字段,如下所示:

enter image description here

然后,在我想插入以下代码时,而不是键入所有这些字段:

$var = "";// var para os campos
$var0 = ""; // var para os values

for($i=1;$i<39;$i++){
    $var = $var.$i.',';
}

for($i=0;$i<36;$i++){
    $var0 = $var0.':'.$i.',';
}


$info_config = $ponte_db->prepare('INSERT INTO config ('.$var.') VALUES ('.$valor_cout.','.$var0.') ');    

for($i=0;$i<36;$i++){
    $info_config->bindValue(":".$i, $result[$i]);
}

$info_config->execute();

变量结果如下

enter image description here

所以,我的想法不起作用,但数据库中的结果不能保存,为什么?

1 个答案:

答案 0 :(得分:0)

你有一点问题,你的字符串每次都重写:

所以不要这样:

for($i=1;$i<39;$i++){
   $var = $var.$i.',';
}

for($i=0;$i<36;$i++){
   $var0 = $var0.':'.$i.',';
}

这样做:

for($i=1;$i<39;$i++){
   $var .= $var.$i.',';
}

for($i=0;$i<36;$i++){
   $var0 .= $var0.':'.$i.',';
}

唯一的区别是我向.添加=

.=$string = $string + 'value';

的简写

另外我认为你应该改变这个(但我不确定因为我不知道$valor_cout来自哪里):

$info_config = $ponte_db->prepare('INSERT INTO config ('.$var.') VALUES ('.$valor_cout.','.$var0.') '); 

$info_config = $ponte_db->prepare('INSERT INTO config ('.$var.') VALUES ('.$var0.') ');