把數(shù)組轉(zhuǎn)成json或其他字符串在寫入數(shù)據(jù)庫,不轉(zhuǎn)換字符串無法寫入或自由Array,我是沒試過,反正我知道是無法寫入,我都是轉(zhuǎn)成json后在寫入。
創(chuàng)新互聯(lián)專注于企業(yè)營銷型網(wǎng)站建設(shè)、網(wǎng)站重做改版、白河網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5、購物商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為白河等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
?php
$array=array(
"data1"="data1",
"data2"=array(
"data22"="data22",
"data222"="data222"
),
"data3"="data3"
);
$encode=json_encode($array);?//數(shù)據(jù)庫寫入轉(zhuǎn)換
$addslashes=addslashes(json_encode($array));?//如果只用英文字符的話可以直接用上面,用中文或有帶斜杠/,PHP寫入數(shù)據(jù)庫的時(shí)候會(huì)去掉斜杠/,所以addslashes函數(shù)在轉(zhuǎn)換下寫入
$decode=json_decode($array,true);?//數(shù)據(jù)庫讀取轉(zhuǎn)換
?
沒用框架就直接拼接sql語句啊
$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ù)庫插入操作就行了;
如果數(shù)據(jù)量很大,注意每次拼接的sql不要太長了,數(shù)據(jù)庫執(zhí)行的sql也是有長度限制的
如果你使用thinkphp框架,可以有直接的語法提交數(shù)組到數(shù)據(jù)庫。
或者可以考慮以下我編寫的示例代碼:
?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);
?
$arr=array();//后臺(tái)接收到的數(shù)據(jù),二維數(shù)組
$str="array(";//設(shè)置起始字符串
for($i=0;?$icount($arr[0]);$i++)
{
$str?.=?'"'+$arr[1][$i]?.?'"="'?.$arr[0][$i]?.?'",';
if(($i+1)?%?3?===?0)
{
$str?.=?")";
$sql="??insert?into?tbname?(goodsid,vaue)?values($goodsid,'{$str}')?"://構(gòu)建sql語句
//執(zhí)行添加,這個(gè)操作不用我寫了吧
$str='';//$str清空
$sql='';//$sql清空
}
}
你試試,看看行不行,主要是拼字符串
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))
首先你要學(xué)會(huì)查錯(cuò),最簡單的方式就是打印出來看。你可以在第一個(gè)變量$arr_ip下一行,把這個(gè)變量打印出來看是不是數(shù)組,如果是數(shù)組,直接存入數(shù)據(jù)庫時(shí)就是array,你可以把數(shù)組json_encode一下,這樣存入進(jìn)去的就是序列化后的字符串了,但你拿出來時(shí)也要json_decode一下,把字符串還原成數(shù)組。