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[’市名’]; //查詢(xún)省份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. IntelliJ IDEA恢復(fù)刪除文件的方法2. IntelliJ IDEA配置Tomcat服務(wù)器的方法3. docker鏡像完全卸載的操作步驟4. 使用Maven 搭建 Spring MVC 本地部署Tomcat的詳細(xì)教程5. idea刪除項(xiàng)目的操作方法6. IntelliJ IDEA設(shè)置默認(rèn)瀏覽器的方法7. IntelliJ IDEA導(dǎo)入jar包的方法8. idea導(dǎo)入maven項(xiàng)目的方法9. idea重置默認(rèn)配置的方法步驟10. Docker 部署 Prometheus的安裝詳細(xì)教程

網(wǎng)公網(wǎng)安備