我在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”
任何帮助表示赞赏
答案 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(...);