我想到的有三種思路吧
創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比儋州網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式儋州網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋儋州地區(qū)。費(fèi)用合理售后完善,10余年實(shí)體公司更值得信賴。
1.如果服務(wù)器允許mysqldump 并且沒(méi)有禁止PHP的shell_exec()這個(gè)函數(shù)的話
直接在PHP里面執(zhí)行mysqldump就可以了。
2.通過(guò)mysql_query('show tables')的返回值遍歷每個(gè)表,循環(huán)對(duì)每個(gè)表使用查詢語(yǔ)句
select * into outfile '路徑/文件名' from 表名
缺點(diǎn)是這樣得到的是純數(shù)據(jù),恢復(fù)數(shù)據(jù)的時(shí)候你需要額外再寫腳本
3.同樣通過(guò)show tables返回表名,遍歷每個(gè)表,通過(guò)select 語(yǔ)句查詢,然后逐條結(jié)果處理,比如手工添加drop table 和create table 以及insert into等等,然后再寫入文件。這樣得到的備份數(shù)據(jù)是比較接近mysqldump的結(jié)果的,各種工具都可以用來(lái)恢復(fù)數(shù)據(jù)。缺點(diǎn)是如果數(shù)據(jù)庫(kù)太大的話,效率不好說(shuō)
總之我不推薦用PHP來(lái)實(shí)現(xiàn)mysql數(shù)據(jù)的備份,如果可能的話還是用mysqldump吧
先說(shuō)代碼,我看了一下,代碼沒(méi)什么問(wèn)題,至于你說(shuō)的不備份,原因可能如下:
查詢無(wú)結(jié)果,測(cè)試辦法是在最外層的那個(gè)while語(yǔ)句結(jié)束后輸出查詢語(yǔ)句,即:
while?($t?=?mysql_fetch_array($q1))
{
//里面的代碼
}
echo?$mysql;//在這里輸出查詢結(jié)果,如果結(jié)果正常,則說(shuō)明查詢有結(jié)果
$filename?=?"autobackup.sql";?//存放路徑,默認(rèn)存放到項(xiàng)目最外層
然后就是另一個(gè)問(wèn)題了,目標(biāo)文件不可寫,你可以參考下面這樣的代碼
$filename?=?"autobackup.sql";?//存放路徑,默認(rèn)存放到項(xiàng)目最外層
if(!file_exists($filename)?||?is_writable($filename))//如果文件不存在或可寫
{
$fp?=?fopen($filename,?'w');//打開或創(chuàng)建可寫文件
$mysql=str_replace("','','');","',null,null);",$mysql);
fputs($fp,?$mysql);//寫入
fclose($fp);
}
else
{
echo?"文件?$filename?不存在或不可寫";
}
如果嘗試發(fā)現(xiàn)仍有問(wèn)題,請(qǐng)?jiān)僮穯?wèn)
使用mysqldump函數(shù)
mysqldump -u username -p dbname table1 table2 ... ? BackupName.sql
dbname參數(shù)表示數(shù)據(jù)庫(kù)的名稱
table1和table2參數(shù)表示需要備份的表的名稱,為空則整個(gè)數(shù)據(jù)庫(kù)備份;
BackupName.sql參數(shù)表設(shè)計(jì)備份文件的名稱,文件名前面可以加上一個(gè)絕對(duì)路徑。通常將數(shù)據(jù)庫(kù)被分成一個(gè)后綴名為sql的文件。
備份數(shù)據(jù)庫(kù)的主要過(guò)程:
切換到對(duì)應(yīng)的數(shù)據(jù)庫(kù);
使用show create table ?tableName,獲得表結(jié)構(gòu),寫到文件中;
然后查詢所有的表數(shù)據(jù),循環(huán)生成相對(duì)應(yīng)sql語(yǔ)句,寫到文件中;
試運(yùn)行生成的sql文件。
文章名稱:php+數(shù)據(jù)庫(kù)自動(dòng)備份 php自帶數(shù)據(jù)庫(kù)
文章來(lái)源:http://jinyejixie.com/article6/hepdog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、企業(yè)建站、ChatGPT、全網(wǎng)營(yíng)銷推廣、網(wǎng)站營(yíng)銷、網(wǎng)站建設(shè)
聲明:本網(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)
猜你還喜歡下面的內(nèi)容