php - 使用 pdo 进行插入中的 BindValue 循环

标签 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

那么,我的想法行不通,但是数据库中的结果没有保存,为什么?

最佳答案

你有一个小问题,你的字符串每次都会被重写:

所以代替这个:

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/

相关文章:

MySql 从列表中选择每个 IP 的最新连接日期?

mysql - 使用 PDO 插入时忽略重复键

PHP PDO : method to recognize automatically if a INSERT or UPDATE

javascript - 多个 Jquery 倒计时显示 NaN

php - 基于名称的下一个和上一个 MySQL 行

php - 如何检查记录是否已经存在,然后在 laravel 中更新或插入?

php - 子目录需要重新安装Joomla吗?

PHP查询选择一条记录

php - 根据 <select> 输入更改 MySQL 查询以更改 Highcharts 图表

PHP 无法加载供应商文件夹 : How to install composer on my server?