带有Mysql插入的数组循环

时间:2014-02-09 15:36:37

标签: php

我有一个名为$ columns的数组:

 array(3) {
      [0]=>
      string(8) "Food"
      [1]=>
      string(6) "Calories"
      [2]=>
      string(3) "Carbs"
    }
    array(3) {
      [0]=>
      string(8) "Food"
      [1]=>
      string(6) "Calories"
    }

另一个名为

的值
array(5) {
  [0]=>
  string(4) "'Fish'"
  [1]=>
  string(7) "'100'"
  [2]=>
  string(13) "'0'"
}
array(6) {
  [0]=>
  string(4) "'Tatoe'"
  [1]=>
  string(7) "'100'"
}

我的数据库中有列表示数组所有可能的列。根据项目,数组可能有5,6个或更少的列。

我有这个代码,假设在这个意义上生成sql语句:

INSERT INTO MEALS(该数组中的列)VALUES(值数组中的值)

以下是代码:

for($i = 0; $i < count($column); $i++)
        {
        echo("INSERT INTO 'MEALS` ($column[$i]) VALUES ($values[$i])\n");         
        }

问题在于每个“MEAL”:

n(每列)将生成sql查询的数量。

因此:

INSERT INTO `MEALS` (Food) VALUES ('Fish')
INSERT INTO `MEALS` (Calory) VALUES ('100')
INSERT INTO `MEALS` (Carbs) VALUES ('0')

而不是全部在同一个查询上。

INSERT INTO MEALS(食物,卡路里,碳水化合物)价值观('鱼','100','0')

因此,如果我在数据库中插入,将创建3行。

我知道我错过了逻辑,感谢任何帮助

3 个答案:

答案 0 :(得分:0)

为什么不在数组循环中生成查询的两个部分(insert中的列为1个,值为1个变量)?

完成循环后,只需连接字符串:

$ query =“INSERT INTO'MEALS'(”。$ var_column_list。“)VALUES(”。$ var_values_list。“)”;

答案 1 :(得分:0)

$query = "insert into table(".join($colomn,','). ") values (\"".join($values,'","')."\")";

根据您的需要尝试使用上述变体

答案 2 :(得分:0)

试试这个......

$colums  = implode(',', $array_of_colums);
$values = implode(',', $array_of_values);
$query = "INSERT INTO `tableName` (".$colums.") VALUES(".$values.") ";