国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

導(dǎo)入導(dǎo)出大量數(shù)據(jù)程序?qū)崿F(xiàn)方法

2024-07-21 02:13:10
字體:
供稿:網(wǎng)友
大家一定使用過 phpmyadmin 里面的數(shù)據(jù)庫導(dǎo)入,導(dǎo)出功能,非常方便。但是在實際應(yīng)用中,我發(fā)現(xiàn)如下幾個問題:

  1 數(shù)據(jù)庫超過一定尺寸,比如6m 這時使用導(dǎo)出一般沒問題,可以正確的保存到本機硬盤上面,但是導(dǎo)入則不行!原因是:一般的 php.ini 里面設(shè)置臨時文件/上傳文件的大小限制為2m,而phpmyadmin使用了上傳的方式,造成失敗。

  2 導(dǎo)出到硬盤的 .sql 文件在導(dǎo)回時,經(jīng)常出現(xiàn)由于某些單引號的問題引起失敗,造成導(dǎo)入失敗,只能用 mysql等應(yīng)用程序?qū)肓恕?我的數(shù)據(jù)庫已經(jīng)超過10m,所以必須解決這個問題。我的思路:

  導(dǎo)出: 用phpmyadmin 保存數(shù)據(jù)庫/表格結(jié)構(gòu),用腳本讀取數(shù)據(jù)庫內(nèi)容并保存到文件里面!
  導(dǎo)入: 用phpmyadmin 恢復(fù)數(shù)據(jù)庫/表格結(jié)構(gòu),用腳本讀取文件,然后保存到庫里面!

  導(dǎo)出程序如下:調(diào)用方法為 ****.php?table=tablename
  這個簡單的程序目前一次保存一個表格!!每行為一個字段的數(shù)據(jù)!!

以下為引用的內(nèi)容:
< ?
if($table==/"/")exit();
mysql_connect(/"localhost/",/"name/",/"password/");
mysql_select_db(/"database/");
$result = mysql_query(/"select * from $table/");
if(mysql_num_rows($result) < = 0) exit();
echo /"開始轉(zhuǎn)換數(shù)據(jù)到文本...
/";
$handle = fopen(/"$table.txt/",/"w/");
$numfields = mysql_num_fields($result);
fputs($handle,$numfields./"/r/n/");
for($k=0;$k< mysql_num_rows($result);$k++)
{
$msg = mysql_fetch_row($result);
for($i=0;$i< $numfields;$i++)
{
$msg[$i] = str_replace(/"/r/n/",/"&&php2000mysqlreturn&&/",$msg[$i]);
$msg[$i] = str_replace(/"/n/" ,/"&&php2000mysqlreturn&&/",$msg[$i]);
fputs($handle,$msg[$i]./"/r/n/");
}
fputs($handle,/"------- php2000 dump data program v1.0 for mysql --------/r/n/");
}
fclose($handle);
echo /"ok/";
?>

  導(dǎo)入的程序如下:用法同上面!
以下為引用的內(nèi)容:
< ?
if($table==/"/")exit();
mysql_connect(/"localhost/",/"name/",/"password/");
mysql_select_db(/"database/");
$message = file(/"$table.txt/");
echo $numfields = chop($message[0]);
for($k=1;$k< count($message);$k+=($numfields+1))
{
$value=/"/";
for ($i=$k;$i< ($k+$numfields-1);$i++)
{
$tmp = str_replace(/"&&php2000mysqlreturn&&/",/"/r/n/",chop($message[$i]));
$value .= /"/'/".addslashes($tmp)./"/',/";
}
$tmp = str_replace(/"&&php2000mysqlreturn&&/",/"/r/n/",chop($message[$k+$numfields-1]));
$value .= /"/'/".$tmp./"/'/";
$query = /"insert into $table values (/".$value./")/";
echo mysql_error();
mysql_query($query);
echo $k./" /";
}
echo /"ok/";
?>
  使用方法和可能的問題!
  1 導(dǎo)入時 file()函數(shù)可能會有問題(我的10m的數(shù)據(jù)沒出現(xiàn)問題),可以改為 fopen()然后沒次讀一行!!
  2 導(dǎo)入,導(dǎo)出都需要用 ftp 操作,也就是導(dǎo)出后,用 ftp 把數(shù)據(jù)轉(zhuǎn)到本機,導(dǎo)入時先用ftp轉(zhuǎn)移數(shù)據(jù)到服務(wù)器!
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 钟祥市| 龙口市| 瑞金市| 南皮县| 岳西县| 漳州市| 石柱| 怀化市| 津南区| 封开县| 苍南县| 舟山市| 蓬莱市| 衢州市| 卢龙县| 平山县| 定边县| 福建省| 开化县| 汉阴县| 道孚县| 荥经县| 平舆县| 洪洞县| 安多县| 淮滨县| 五大连池市| 盐津县| 胶南市| 福海县| 滨海县| 张家港市| 渭南市| 法库县| 阜阳市| 怀宁县| 康马县| 桐城市| 墨竹工卡县| 玉门市| 南丹县|