如果你使用thinkphp框架,可以有直接的語(yǔ)法提交數(shù)組到數(shù)據(jù)庫(kù)。
創(chuàng)新互聯(lián)公司主營(yíng)甘德網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶APP開(kāi)發(fā)公司,甘德h5微信小程序定制開(kāi)發(fā)搭建,甘德網(wǎng)站營(yíng)銷推廣歡迎甘德等地區(qū)企業(yè)咨詢
或者可以考慮以下我編寫的示例代碼:
?php
header('Content-type:text/html;charset=utf-8');
$values = array('isbn'='0-672-31509-8','author'='王一','title'='php高級(jí)編程','price'=58.00);
$sql = sprintf('INSERT INTO %s (%s) VALUES ("%s")', 'books',
implode(', ', array_map('mysql_escape_string', array_keys($values))),
implode('", "',array_map('mysql_escape_string', $values)));
$db = new mysqli('localhost','root','root','books');
$db-query($sql);
?
把數(shù)組轉(zhuǎn)成json或其他字符串在寫入數(shù)據(jù)庫(kù),不轉(zhuǎn)換字符串無(wú)法寫入或自由Array,我是沒(méi)試過(guò),反正我知道是無(wú)法寫入,我都是轉(zhuǎn)成json后在寫入。
?php
$array=array(
"data1"="data1",
"data2"=array(
"data22"="data22",
"data222"="data222"
),
"data3"="data3"
);
$encode=json_encode($array);?//數(shù)據(jù)庫(kù)寫入轉(zhuǎn)換
$addslashes=addslashes(json_encode($array));?//如果只用英文字符的話可以直接用上面,用中文或有帶斜杠/,PHP寫入數(shù)據(jù)庫(kù)的時(shí)候會(huì)去掉斜杠/,所以addslashes函數(shù)在轉(zhuǎn)換下寫入
$decode=json_decode($array,true);?//數(shù)據(jù)庫(kù)讀取轉(zhuǎn)換
?
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))
您好,您可以參考如下代碼:
?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ù)為止~
沒(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)度限制的
訂單提交后:
$_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ù)組寫入數(shù)據(jù)庫(kù) php將數(shù)組保存到文件
URL分享:http://www.muchs.cn/article6/hhehig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開(kāi)發(fā)、虛擬主機(jī)、企業(yè)建站、動(dòng)態(tài)網(wǎng)站、網(wǎng)站設(shè)計(jì)、網(wǎng)站內(nèi)鏈
聲明:本網(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)