我很想在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代码帮助我。
答案 0 :(得分:2)
看看这个简短的教程。它可能正是您所需要的:http://99webtools.com/how-to-store-array-mysql.php
答案 1 :(得分:0)
如果表格仅保留在2列中,id1
和id2
您可以执行以下操作:
$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函数将我的数组划分为多个子数组,与列号相同,而不是插入数组值通过每个循环的子键。谢谢你再次感谢你。