PHP將JSON格式省市(區(qū))二級(jí)數(shù)據(jù)插入數(shù)據(jù)庫(kù)
在網(wǎng)站開(kāi)發(fā)過(guò)程中,很多情況下都要用到省市(區(qū))二級(jí)聯(lián)動(dòng)下拉菜單,比如地址信息,以及天氣等API接口調(diào)用,等等,而且具有通用性,一次入庫(kù),到處使用,前面農(nóng)夫莊園相關(guān)文章提到過(guò)該方法,但是網(wǎng)上找到的省市信息比較坑,很多將縣一級(jí)的城市也列到區(qū)市里,后面還要?jiǎng)h除,比較麻煩,后來(lái)在測(cè)試天氣API的時(shí)候,找到一個(gè)更好的json格式的省市信息,應(yīng)該是比較準(zhǔn)確了,這里將相關(guān)代碼列出如下,希望給大家提供幫助:
首先需要下載我提供的包含json格式省市信息的文件:sxinfo.txt
然后將該文件中的json格式數(shù)據(jù)拷貝到下面代碼中相應(yīng)的位置(或者你也可以從文件流中讀取省市信息到字符串中,然后進(jìn)行處理,這里不贅述):
<?php/** author:農(nóng)夫莊園* website:* url:/p/5543.html*///json格式的地區(qū)字符串$area = <<<AREA這里插入json格式省市信息AREA;//將json格式的地區(qū)字符串轉(zhuǎn)化為數(shù)組,不加參數(shù)true則會(huì)轉(zhuǎn)化為對(duì)象$area_array = json_decode($area, true);//echo ’<pre>’;//print_r($area_array);$areas = $area_array[’areas’];$pdo = new PDO(’mysql:host=localhost;dbname=dbname;charset=utf8’, ’user’, ’pass’); //將相應(yīng)位置替換成你的數(shù)據(jù)庫(kù)對(duì)應(yīng)信息//開(kāi)啟事務(wù)支持$pdo->beginTransaction();foreach ($areas as $area): //echo ’省/直轄市:’.$area[’省’].’<br/>’; $province = $area[’省’]; $stmt = $pdo->prepare('INSERT INTO province(`name`) VALUES(:name)'); $stmt->bindParam(’:name’, $province); if ($stmt->execute()) {$cities = $area[’市’];foreach ($cities as $city) { //echo ’|---市/區(qū)/自治州:’.$city[’編碼’].’-’.$city[’市名’].’<br/>’; $cid = $city[’編碼’]; $name = $city[’市名’]; //查詢省份id[province表中的name是唯一的] $query = $pdo->prepare('SELECT id FROM province WHERE name = ’'.$province.'’'); $query->execute(); //獲取省份id $pid = $query->fetchColumn(); $stmt2 = $pdo->prepare('INSERT INTO city(`id`,`name`,`p_id`) VALUES(:id,:name,:pid)'); $stmt2->bindParam(’:name’,$name); $stmt2->bindParam(’:pid’,$pid); $stmt2->bindParam(’:id’,$cid); if($stmt2->execute()):continue; else:echo ’插入城市’.$name.’失敗!’;//如果插入失敗執(zhí)行回滾操作$pdo->rollBack();$pdo=null;return; endif;} }else{echo '插入省份'.$province.'失敗!';//如果插入失敗執(zhí)行回滾操作$pdo->rollBack();$pdo=null;return; }endforeach;//如果所有數(shù)據(jù)插入成功執(zhí)行提交操作$pdo->commit();$pdo = null;?>
至此,執(zhí)行上述代碼,就可以將省市信息插入你的數(shù)據(jù)庫(kù)了。
相關(guān)文章:
1. ASP動(dòng)態(tài)網(wǎng)頁(yè)制作技術(shù)經(jīng)驗(yàn)分享2. jsp文件下載功能實(shí)現(xiàn)代碼3. asp.net core項(xiàng)目授權(quán)流程詳解4. 在JSP中使用formatNumber控制要顯示的小數(shù)位數(shù)方法5. CSS3實(shí)現(xiàn)動(dòng)態(tài)翻牌效果 仿百度貼吧3D翻牌一次動(dòng)畫特效6. XMLHTTP資料7. ASP常用日期格式化函數(shù) FormatDate()8. html中的form不提交(排除)某些input 原創(chuàng)9. CSS3中Transition屬性詳解以及示例分享10. ASP基礎(chǔ)入門第八篇(ASP內(nèi)建對(duì)象Application和Session)
