十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
有两个方法可供选择,一种是把数据存入csv文件,然后执行load data infile
创新互联是一家集网站建设,涿州企业网站建设,涿州品牌网站建设,网站定制,涿州网站建设报价,网络营销,网络优化,涿州网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
还有一种就是类似于sql server里面的bulk insert,使用insert语句插入批量数据,结合PHP的implode函数,
可以很简单的实现大批量数组数据的一次性插入。
[php] view plaincopy
$statement = "INSERT INTO table (title, type, customer) VALUES ";
foreach( $data as $row) {
$statement .= ' ("' . implode($row, '","') . '")';
}
不过大批量数据的插入,需要注意mysql在内存上有限制:
bulk_insert_buffer_size变量的默认大小为8M, 是指单个线程占用的大小限制,设置为0,表示不做限制。
没用框架就直接拼接sql语句啊
$sql = 'insert into tablename(field1, field2, field3) values(val1, val2, val3), (val1, val2,val3)';
主要就是拼接values后面的内容,一个括号一条数据,拼接完执行数据库插入操作就行了;
如果数据量很大,注意每次拼接的sql不要太长了,数据库执行的sql也是有长度限制的
您好,您可以参考如下代码:
?php
/* 获取HTML表单提交的数据 */
$id = _POST["id"];
$catid = _POST["catid"];
$ly = array("data***");
/* 连接数据库,如果出错显示消息结束程序,否则继续执行数据库命令 */
$con = mysql_connect("127.0.0.1","user","password");
if($con == false)
{
echo "错误:系统数据库连接失败!错误信息:".mysql_error($con);
exit();
}else{
/* 选择需要操作数据库 */
mysql_select_db("mydb",$con);
/* 根据ly数组的长度决定执行多少次SQL语句 */
for($i=0;$icount($ly);$i++)
{
/* 设置SQL查询语句 */
$sql = "INSERT INTO `biaoge` VALUES('{$id}','{$catid}',".$ly[$i].")";
/* 如果SQL语句执行失败,返回错误代码; */
if(mysql_query($sql,$con) == false)
{
echo "数据库查询出错!错误代码:".mysql_errno($con);
mysql_close($con);
exit();
}
}
mysql_close($con);
echo "记录添加成功!";
}
?
至于遍历数组,有很多种方式,如楼上用的foreach语句也是可以的。这里用for的原因是为了方便提问者理解。如果代码仍有不足或不明白的地方,请您继续追问,直到给您一个满意的答复为止~
PHP的话,使用foreach循环执行sql代码即可(可能运算量较大)
直接存数组中的字符串也可以。
如:
$a="0,1,2,3";
//$a=join(",",array(0,1,2,3)); 这样也可以
mysql_query("INSERT INTO admin (monday) VALUES($a)");
这样字段monday的就是0,1,2,3
(后一种具体答案,摘自adebug的回答,有改动)
json_encode后就是字符串了。
所以不需要什么特别处理,直接入库就可以。
只不过出库后需要json_decode。
你的问题是,出库后没有对json_encode的字段进行json_decode处理。
例如
$result = array('a'='jsonencode后的字符串');
print_r(json_decode($result['a']));
订单提交后:
$_POST['list'] 的值会是:
array(a,b,c,d,e,a,b,a,b,c,d);
根本就没有使用价值,即无法分清楚是这些选项是属于哪个名称的。所以,要么用js先在提交之前加工一个“list”的值,或者改交下list的名称,如下:
input type="checkbox" name="list[]" value="a" /
改为:
input type="checkbox" name="list_sina[]" value="a" /
其他的按些修改。
在提交之后的处理代码如下:
$title = isset($_POST['title']) ? $_POST['title'] : array();
$insert_data = array();
foreach($title as $row){
$name = trim($row);
$list = isset($_POST['list_'.$name]) ? implode(',',$_POST['list_'.$name]) : '';
$insert_data[] = "('$name','$list')";
}
if(!empty($insert_data)) $mysql-query('INSERT INTO mysql_table(name,list)VALUES '.implode(',',$insert_data));
这样的数据库查询语句为:
INSERT INTO mysql_table(name,list)VALUES ('sina','a,b,c,d,e'),('qq','a,b'),('ifeng','a,b,c,d')