将数组插入mysql数据库

时间:2011-10-16 15:40:50

标签: php mysql arrays

我在php程序中有一个如下所示的数组:

$db=Array ( [1] => 1 [2] => 2 [3] => 2 [4] => 2 [5] => 3 [6] => 4 [7] => 4 [8] => 5 );

这是一个关联数组,我希望将它存储在具有以下结构的mysql数据库中:

id  date    fd1     fd2     fd3     fd4     fd5     fd6     fd7     fd8

mysql_query("INSERT INTO table2 (date) VALUES(NOW(),'$db')");

id设置为AUTO_INCREASE,NOW()存储每个条目的日期

但我的主要问题是如何将数组字段[1]分配给fd1列并在其中发布“value”

任何帮助表示赞赏

2 个答案:

答案 0 :(得分:0)

$sql_fields = 'date';
$sql_values = 'NOW()';
for ($i=1; $i<=8; $i++) {
    $sql_fields .= ',fd'.$i;
    $sql_values .= ','.$db[$i];
}
$sql = 'INSERT INTO `table2` ('.$sql_fields.') VALUES ('.$sql_values.')';
mysql_query($sql);

编辑:

这里的速度没有影响。你也可以使用implode

// create fdX list
$fields = array_map(function($v){return '`fd'.($v++).'`';}, range(1,8));
// the sql query
$sql = 'INSERT INTO `table2` 
    (`date`,'.implode(',',$fields).') VALUES (NOW(),'.implode(',',$db).')';

答案 1 :(得分:0)

您可以使用implode

将数组元素连接到字符串中
$db = Array( [1] => 1 [2] => 2 [3] => 2 [4] => 2 [5] => 3 [6] => 4 [7] => 4 [8] => 5 );
$db = implode(' ', $db); // Join the array into a string with space as the separator
// Run your insert query
// mysql_query(...);