有没有办法将数组元素插入mysql数据库

时间:2013-12-05 12:14:04

标签: php mysql sql

我很想在mysql中插入数组元素

i have a array as following
  $a = array(
        '1' => 'a',
        '2' => 'b',
        '3' => 'c',
        '4' => 'd',
        '5' => 'e'
        '6' => 'f'
    );

我有一个表字段id1,id2,...可能是

id1   id2
a      b
c      d
e      f

任何人都可以用PHP代码帮助我。

6 个答案:

答案 0 :(得分:2)

看看这个简短的教程。它可能正是您所需要的:http://99webtools.com/how-to-store-array-mysql.php

答案 1 :(得分:0)

如果表格仅保留在2列中,id1id2

您可以执行以下操作:

$insertVals = ''; //Values go here,
$insertCols = ''; //Column names go here, alternating from id1 to id2

$counter = 0; //Will be used to iterate odd and even.

foreach ($a as $value) {
    $insertVals .= "'".$value."',"; //Comma at the end is needed.
    if ($counter % 2 == 0) //if even basicly
      $insertCols .= 'id1,'; //DB fields do not require quotes, backticks are optional
    else
      $insertCols .= 'id2,';
    $counter++ //Increment counter to cause odd values to occur.
}

//Remove last comma's from both strings.
$insertVals = substr($insertVals, 0, -1); //-1 removes the last char in substr.
$insertCols = substr($insertCols, 0, -1);

$query = "INSERT INTO yourtable ({$insertCols}) VALUES ({$insertVals})";

这应该可以解决问题。如果您有任何错误,请告诉我,因为这是直接写出来的,并且未经测试

问候,Sidney Liebrand

答案 2 :(得分:0)

$a = array(
        '1' => 'a',
        '2' => 'b',
        '3' => 'c',
        '4' => 'd',
        '5' => 'e'
        '6' => 'f'
    );

$mysqli = new mysqli("host", "user", "pw", "db");

foreach($a as $insert)
{
   $query = INSERT INTO table $insert[1],$insert[2];
   $mysqli=mysql_query($query);
}

答案 3 :(得分:0)

尝试此代码:未经测试

这适用于任意数量的列。

<?php

$a = array(
    '1' => 'a',
    '2' => 'b',
    '3' => 'c',
    '4' => 'd',
    '5' => 'e'
    '6' => 'f'
);
$col_cnt = 3; // get column count from mysql query.
$temp = array();
for($i=0;$i<$col_cnt;$i++)
$temp[] = ''; //initialize the array. If no value in "a", then empty will inserted

for($t=1;$t<=count($a);$t+=$col_cnt)
{
$ins_arr = $temp; //initialize with empty values
for($j=0;$j<$col_cnt;$j++)
{
    $ins_arr[$j] = $a[$t+$j];
}
//
mysql_query("insert into tab1 values(".implode(",",$ins_arr).")");


}

?>

答案 4 :(得分:0)

您需要了解一下数据库规范化http://en.wikipedia.org/wiki/Database_normalization。基本上,您为数组创建一个新表,并使用键将它们绑定在一起。

答案 5 :(得分:0)

感谢各位,我非常感谢您花费宝贵的时间来解决我的问题,最后我使用array_chunk函数将我的数组划分为多个子数组,与列号相同,而不是插入数组值通过每个循环的子键。谢谢你再次感谢你。