真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

PHP+MySQL批量數(shù)據(jù)實(shí)現(xiàn)導(dǎo)入導(dǎo)出方法

下文主要給大家?guī)鞵HP+MySQL批量數(shù)據(jù)實(shí)現(xiàn)導(dǎo)入導(dǎo)出方法,希望這些內(nèi)容能夠帶給大家實(shí)際用處,這也是我編輯PHP+MySQL批量數(shù)據(jù)實(shí)現(xiàn)導(dǎo)入導(dǎo)出方法這篇文章的主要目的。好了,廢話不多說,大家直接看下文吧。                                                      

成都創(chuàng)新互聯(lián)公司堅(jiān)信:善待客戶,將會(huì)成為終身客戶。我們能堅(jiān)持多年,是因?yàn)槲覀円恢笨芍档眯刨?。我們從不忽悠初訪客戶,我們用心做好本職工作,不忘初心,方得始終。10多年網(wǎng)站建設(shè)經(jīng)驗(yàn)成都創(chuàng)新互聯(lián)公司是成都老牌網(wǎng)站營銷服務(wù)商,為您提供成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、網(wǎng)站設(shè)計(jì)、H5高端網(wǎng)站建設(shè)、網(wǎng)站制作、高端網(wǎng)站設(shè)計(jì)、小程序開發(fā)服務(wù),給眾多知名企業(yè)提供過好品質(zhì)的建站服務(wù)。

PHP腳本的處理

1、腳本的思路就是:查詢特定賬號數(shù)據(jù),組裝拼接成sql文本數(shù)據(jù)。這里要注意,對查詢的值要進(jìn)行過濾處理,因?yàn)橛行┳侄问前恍┓欠ㄗ址热纾骸▎我枺?,”(雙引號),`(鍵盤左上角第二個(gè)),這些符號在拼接sql語句時(shí),會(huì)因?yàn)檎也坏介]合的另一端,讓值變了,導(dǎo)致sql語句拼接有問題,所以這部分字符要替換掉,我是用str_replace()函數(shù)將這些符號置為空。

2、我是使用is_numeri函數(shù)判斷值是否是數(shù)字類型結(jié)構(gòu),是的話就加""(雙引號),但是is_numeri有個(gè)問題,遇到有些數(shù)值有e字母的,它也是返回true,

PHP+MySQL批量數(shù)據(jù)實(shí)現(xiàn)導(dǎo)入導(dǎo)出方法

實(shí)錘了這樣是有問題的,因?yàn)檫@樣值沒加""是不能insert到MySQL中的。

后來我同時(shí)加上is_float(),is_string()函數(shù)同時(shí)來判斷這個(gè)值是否需要加入雙引號。

3、由于導(dǎo)出的數(shù)據(jù)量比較多,我是分了4個(gè)PHP進(jìn)程來跑,一個(gè)進(jìn)程跑一萬個(gè)用戶數(shù)據(jù),這樣能夠節(jié)省很多時(shí)間。但是要注意的是,存儲(chǔ)的sql文本也是需要進(jìn)行區(qū)分的,因?yàn)槎鄠€(gè)進(jìn)程同時(shí)寫一個(gè)文本文件可能會(huì)出現(xiàn)數(shù)據(jù)丟失(我是后面才發(fā)現(xiàn),花了好多時(shí)間補(bǔ)回去數(shù)據(jù))。

4、使用tar -xcvf 命令對sql文件進(jìn)行壓縮打包,一個(gè)7G的文件,可以壓縮到700多M,壓縮效果還是不錯(cuò)的。PHP視頻教程

導(dǎo)入數(shù)據(jù)到MySQL

1、由于數(shù)據(jù)量比較大,我也是分了幾個(gè)進(jìn)程跑數(shù)據(jù)。使用的是MySQL source 命令來導(dǎo)入這些大的sql文件

    mysql>source D:/www/sql/data.sql;

sql文件里面包含了use 數(shù)據(jù)庫,這里就不需要use 數(shù)據(jù)庫了。

通過source命令導(dǎo)入多個(gè)文件,可以新建一個(gè)sou.sql文件,里面存放下面的命令

例如:

    source c:/1.sql;
    source c:/2.sql;

這樣就可以在一個(gè)source命令里面導(dǎo)入多個(gè)sql文件了。

期間也有一些問題:

出現(xiàn):

mysql Got a packet bigger than 'max_allowed_packet' bytes

查了下,是因?yàn)閱伪頂?shù)據(jù)量較大,大體定位到mysql會(huì)對單表數(shù)據(jù)量較大的SQL做限制

解決:

更改max_allowed_packet包大小

方案一,臨時(shí)修改:輸入命令 set global max_allowed_packet = 大小; (注意,這里的大小只能填寫字節(jié)。重啟mysql服務(wù)后,配置將會(huì)失效?。?/p>

方案二,修改my.ini文件,在[mysqld]部分加入 max_allowed_packet=大小

2、由于source命令這種方式不能記錄定位記錄到錯(cuò)誤信息,所以后來我改用了linux shell方式導(dǎo)入

如下:sql.sh

  #!/bin/bash
    p="d:backup/sql.sql" //絕對路徑
    User='abc'
    Password='123'
     
    mysql -u $User -p$Password -e "source $f"  2>err1.txt;//輸出錯(cuò)誤到文件中,方便后面查詢     
    echo 'OK!'

這樣導(dǎo)入,可以找到一些錯(cuò)誤的提示,方便后面解決問題。 

對于以上關(guān)于PHP+MySQL批量數(shù)據(jù)實(shí)現(xiàn)導(dǎo)入導(dǎo)出方法,大家是不是覺得非常有幫助。如果需要了解更多內(nèi)容,請繼續(xù)關(guān)注我們的行業(yè)資訊,相信你會(huì)喜歡上這些內(nèi)容的。


分享名稱:PHP+MySQL批量數(shù)據(jù)實(shí)現(xiàn)導(dǎo)入導(dǎo)出方法
本文URL:http://weahome.cn/article/ggpcci.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部