ホームページ >バックエンド開発 >PHPチュートリアル >PHP が大量のデータを mysql にインポートする (例)

PHP が大量のデータを mysql にインポートする (例)

WBOY
WBOYオリジナル
2016-07-25 08:54:581807ブラウズ
  1. //Mysqlビッグデータの高速バックアップ

  2. //使用する前に、まずインポートするSQLファイル名、データベースホスト名、データベースユーザー名、パスワードを変更してください。コードコメントにデータベース名を入力します。
  3. //同時に、データベース ファイルとテキストを Web サイトのディレクトリに FTP で転送し、WEB モードでこのファイルにアクセスします
  4. //edit: bbs.it-home.org
  5. $file_name="bn_site.sql";/ /インポートするSQLファイル名
  6. $dbhost="localhost";//データベースホスト名
  7. $dbuser="root";//データベースユーザー名
  8. $dbpass="";//データベースパスワード
  9. $dbname="bn_site "; // データベース名
  10. set_time_limit(0);// タイムアウトを 0 に設定します。これは、常に実行されることを意味します。セーフモードでphpが無効な場合、インポートはタイムアウトします
  11. $fp=@fopen($file_name,"r") または die ("SQL ファイルを開けません"); でインポートする必要があります。 // ファイルを開きます
  12. mysql_connect($dbhost,$dbuser,$dbpass) または die("データベースに接続できません") // データベースに接続します
  13. mysql_select_db($dbname) または die("データベースを開けません"); /データベースを開く
  14. echo "はインポート操作を実行します";
  15. while($SQL=GETNEXTSQL()){
  16. if(!mysql_query($sql)){
  17. echo "実行エラー: "。 mysql_error()."
    ";
  18. echo "SQL ステートメントは次のとおりです:
    ".$SQL."
    ";
  19. };

  20. < ;p>gt;}
  21. echo "インポートが完了しました ";

  22. fclose($fp) or die ("can"t close file $file"); // ファイルを閉じます

  23. mysql_close();
  24. //ファイルから
  25. function GETNETSQL(){
  26. global $fp;
  27. $sql="";
  28. while( $line=@fgets($fp,40960)){ で項目ごとに SQL を取得します
  29. $line=trim($line);
  30. / /次の 3 つの文は、PHP の上位バージョンでは必要ありませんが、一部の下位バージョンでは変更が必要な場合があります。
  31. $line = str_replace("\\","\ ",$line);
  32. $line = str_replace("'"," '",$line);
  33. $line = str_replace("\r\n",chr(13).chr(10),$line) ;
  34. if (strlen($line)>1){
  35. if ( $line[0]=="-"&& $line[1]=="-"){
  36. continue;
  37. }
  38. }
  39. $sql.=$line.chr(13 ).chr(10);

  40. if (strlen($line)>0){
  41. if ($line[strlen($line)-1 ]==";"){
  42. break;
  43. }
  44. }
  45. }
  46. return $sql;
  47. }
  48. ?>

コードをコピー


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。