没用框架就直接拼接sql语句啊
创新互联建站坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站设计、网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的长泰网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
$sql = 'insert into tablename(field1, field2, field3) values(val1, val2, val3), (val1, val2,val3)';
主要就是拼接values后面的内容,一个括号一条数据,拼接完执行数据库插入操作就行了;
如果数据量很大,注意每次拼接的sql不要太长了,数据库执行的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,
读取的时候要重新组成数组的话就分割重组。
有两个方法可供选择,一种是把数据存入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,表示不做限制。
array2string函数 是phpcms自带的函数
/phpcms/libs/functions/global.func.php 第293行
/**
* 将数组转换为字符串
*
* @param array $data 数组
* @param bool $isformdata 如果为0,则不使用new_stripslashes处理,可选参数,默认为1
* @return string 返回字符串,如果,data为空,则返回空
*/
function array2string($data, $isformdata = 1) {
if ($data == '')
return '';
if ($isformdata)
$data = new_stripslashes($data);
return addslashes(var_export($data, TRUE));
}
把数组转成json或其他字符串在写入数据库,不转换字符串无法写入或自由Array,我是没试过,反正我知道是无法写入,我都是转成json后在写入。
?php
$array=array(
"data1"="data1",
"data2"=array(
"data22"="data22",
"data222"="data222"
),
"data3"="data3"
);
$encode=json_encode($array); //数据库写入转换
$addslashes=addslashes(json_encode($array)); //如果只用英文字符的话可以直接用上面,用中文或有带斜杠/,PHP写入数据库的时候会去掉斜杠/,所以addslashes函数在转换下写入
$decode=json_decode($array,true); //数据库读取转换
?
lxydjx 正解,我来详细补充一下吧。未经测试、、、
//初始化
$sql = array();
// 从 a.php POST 过来的值
$_POST["xinxi"] = "20-2,19-1,18-1";
// 拆分为 array("20-2", "19-1", "18-1");
$post_data = explode(",", $_POST["xinxi"]);
// 循环数组
for($i = 0; $i count($post_data); $i++) {
// 再次拆分每一条信息为 array("20", "2"), array("19", "1"), array("18", "1")
$details = explode("-", $post_data[$i]);
// 将每一条信息添加到 $sql 数组中
array_push($sql, "(20121015194535193356, ".$details[0].", ".$details[1].")");
}
// 用 , 连接,转换为 string
$sql = implode(",", $sql);
// 插入数据库
mysql_query("INSERT INTO table_sales (dingid, detailsid, buynumber) VALUES ($sql)");