在我的表“config”中,我有 38 个字段,如下所示:
然后,我想插入以下代码,而不是当时键入所有这些字段:
$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();
变量结果如下
那么,我的想法行不通,但是数据库中的结果没有保存,为什么?
最佳答案
你有一个小问题,你的字符串每次都会被重写:
所以代替这个:
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.') ');
关于php - 使用 pdo 进行插入中的 BindValue 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21064452/