有兩個(gè)方法可供選擇,一種是把數(shù)據(jù)存入csv文件,然后執(zhí)行l(wèi)oad data infile
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),涿州企業(yè)網(wǎng)站建設(shè),涿州品牌網(wǎng)站建設(shè),網(wǎng)站定制,涿州網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,涿州網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
還有一種就是類似于sql server里面的bulk insert,使用insert語(yǔ)句插入批量數(shù)據(jù),結(jié)合PHP的implode函數(shù),
可以很簡(jiǎn)單的實(shí)現(xiàn)大批量數(shù)組數(shù)據(jù)的一次性插入。
[php] view plaincopy
$statement = "INSERT INTO table (title, type, customer) VALUES ";
foreach( $data as $row) {
$statement .= ' ("' . implode($row, '","') . '")';
}
不過(guò)大批量數(shù)據(jù)的插入,需要注意mysql在內(nèi)存上有限制:
bulk_insert_buffer_size變量的默認(rèn)大小為8M, 是指單個(gè)線程占用的大小限制,設(shè)置為0,表示不做限制。
沒(méi)用框架就直接拼接sql語(yǔ)句啊
$sql = 'insert into tablename(field1, field2, field3) values(val1, val2, val3), (val1, val2,val3)';
主要就是拼接values后面的內(nèi)容,一個(gè)括號(hào)一條數(shù)據(jù),拼接完執(zhí)行數(shù)據(jù)庫(kù)插入操作就行了;
如果數(shù)據(jù)量很大,注意每次拼接的sql不要太長(zhǎng)了,數(shù)據(jù)庫(kù)執(zhí)行的sql也是有長(zhǎng)度限制的
您好,您可以參考如下代碼:
?php
/*?獲取HTML表單提交的數(shù)據(jù)?*/
$id?=?_POST["id"];
$catid?=?_POST["catid"];
$ly?=?array("data***");
/*?連接數(shù)據(jù)庫(kù),如果出錯(cuò)顯示消息結(jié)束程序,否則繼續(xù)執(zhí)行數(shù)據(jù)庫(kù)命令?*/
$con?=?mysql_connect("127.0.0.1","user","password");
if($con?==?false)
{
echo?"錯(cuò)誤:系統(tǒng)數(shù)據(jù)庫(kù)連接失敗!錯(cuò)誤信息:".mysql_error($con);
exit();
}else{
/*?選擇需要操作數(shù)據(jù)庫(kù)?*/
mysql_select_db("mydb",$con);
/*?根據(jù)ly數(shù)組的長(zhǎng)度決定執(zhí)行多少次SQL語(yǔ)句?*/
for($i=0;$icount($ly);$i++)
{
/*?設(shè)置SQL查詢語(yǔ)句?*/
$sql?=?"INSERT?INTO?`biaoge`?VALUES('{$id}','{$catid}',".$ly[$i].")";
/*?如果SQL語(yǔ)句執(zhí)行失敗,返回錯(cuò)誤代碼;?*/
if(mysql_query($sql,$con)?==?false)
{
echo?"數(shù)據(jù)庫(kù)查詢出錯(cuò)!錯(cuò)誤代碼:".mysql_errno($con);
mysql_close($con);
exit();
}
}
mysql_close($con);
echo?"記錄添加成功!";
}
?
至于遍歷數(shù)組,有很多種方式,如樓上用的foreach語(yǔ)句也是可以的。這里用for的原因是為了方便提問(wèn)者理解。如果代碼仍有不足或不明白的地方,請(qǐng)您繼續(xù)追問(wèn),直到給您一個(gè)滿意的答復(fù)為止~
PHP的話,使用foreach循環(huán)執(zhí)行sql代碼即可(可能運(yùn)算量較大)
直接存數(shù)組中的字符串也可以。
如:
$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的回答,有改動(dòng))
json_encode后就是字符串了。
所以不需要什么特別處理,直接入庫(kù)就可以。
只不過(guò)出庫(kù)后需要json_decode。
你的問(wèn)題是,出庫(kù)后沒(méi)有對(duì)json_encode的字段進(jìn)行json_decode處理。
例如
$result = array('a'='jsonencode后的字符串');
print_r(json_decode($result['a']));
訂單提交后:
$_POST['list'] 的值會(huì)是:
array(a,b,c,d,e,a,b,a,b,c,d);
根本就沒(méi)有使用價(jià)值,即無(wú)法分清楚是這些選項(xiàng)是屬于哪個(gè)名稱的。所以,要么用js先在提交之前加工一個(gè)“l(fā)ist”的值,或者改交下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));
這樣的數(shù)據(jù)庫(kù)查詢語(yǔ)句為:
INSERT INTO mysql_table(name,list)VALUES ('sina','a,b,c,d,e'),('qq','a,b'),('ifeng','a,b,c,d')
網(wǎng)站欄目:php數(shù)組寫(xiě)入數(shù)據(jù)庫(kù) php數(shù)組添加數(shù)據(jù)
當(dāng)前路徑:http://m.newbst.com/article6/doojgig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站內(nèi)鏈、企業(yè)網(wǎng)站制作、App設(shè)計(jì)、網(wǎng)站設(shè)計(jì)公司、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容