PHP数组,如何写入mysql数据库?

部分代码:
$info=$_POST['info'] ;
print_r($info); //结果如下
Array ( [title] => Array ( [0] => LM324 [1] => LM1117 LM339 [2] => LM339 ......) [price] => Array ( [0] => 0.29 [1] => 0.11 [2] => 0.33......) [amount] => Array ( [0] => 2000 [1] => 3000 [2] => 3000 ......))

请问PHP中如何将上述数组$info写入mysql数据库?
前台html代码:
<input type="text" name="info[title][]" />
<input type="text" name="info[price][]" />
<input type="text" name="info[amount][]" />

<?php
$info=$_POST['info'] ;
$values = "";
for($i = 0; $i < count($info['title']); $i++){
    $values .= "('{$info['title'][$i]}', '{$info['price'][$i]}', '{$info['amout'][$i]}'),";
}
$values = rtrim($values, ',');
mysql_query("insert into tablename values ".$values);
//这种情况适用于比较少的行插入

 如果数据量比较大

将数据按行存入文本中

for($i = 0; $i < count($info['title']); $i++){
    $values .= "{$info['title'][$i]}\t{$info['price'][$i]}\t{$info['amout'][$i]}\r\n";
}
file_put_content('data.txt', $values);
mysql_query("load data local infile 'data.txt' into table tablename");

追问

谢谢,请问插入时如何对应数据库表中的字段?表有很多字段的

追答

可以说下表中有哪些字段吗,数组已经确定只有三个字段的数据是吧?

追问

字段有20多个啊,插入语句修改为:
mysql_query("insert into test(title,price,amount) values ".$values);
这样应该可以吧?按$values 值的顺序,title,price,amount都是表中的字段

追答

是这样,但是你的表其他字段确定允许为空吗

追问

可以的。再问下,如何计算导入成功的信息条数?要排除空白行

追答

没有现成的函数,有个mysql_affected_rows可以获取前一次操作影响的行数,但是空白行既然已经插入表了,那必然也算影响的一行,如果想排除空白行,
for($i = 0; $i < count($info['title']); $i++){
干嘛不在这里面排除,干嘛非得插入后再考虑非空白行的情况

追问

谢谢,已在客户端判断排除了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-11-08
用foreach拼接sql语句,这个根据实际情况来写.

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网