ホームページ  >  記事  >  バックエンド開発  >  CSV を MySql データベースにインポートする PHP の例

CSV を MySql データベースにインポートする PHP の例

WBOY
WBOYオリジナル
2016-07-25 08:56:12818ブラウズ
  1. /**

  2. * CSV ファイルを mysql データベースにインポートします
  3. * 編集: bbs.it-home.org
  4. */
  5. $databasehost = "localhost";
  6. $databasename = "テスト";
  7. $databasetable = "サンプル";
  8. $databaseusername ="test";
  9. $databasepassword = "";
  10. $fieldseparator = ",";
  11. $lineseparator = "n";
  12. $csvfile = "filename.csv";

  13. /********************************/

  14. /* これらのレコードの先頭に空のフィールドを追加しますか?
  15. /* これは、最初のフィールドが auto_increment 整数であるテーブルがある場合に便利です
  16. /* と csv ファイルレコードの前に空のフィールドなどはありません。
  17. /* はいの場合は 1、いいえの場合は 0 を設定します。注意: よくわからない場合は 1 に設定しないでください。
  18. /* この追加フィールドがテーブルに存在しない場合、間違ったフィールドにデータがダンプされる可能性があります
  19. /********************************/
  20. $addauto = 0;
  21. /********************************/

  22. /* mysql クエリをファイルに保存しますか? 「はい」の場合、$save を 1 に設定します。

  23. /* ファイルのアクセス許可を 777 に設定する必要があります。ftp 経由でサンプル ファイルをアップロードし、
  24. /* アクセス許可を変更するか、プロンプトで次のコマンドを実行します: touch Output.sql && chmod 777 Output .sql
  25. /********************************/
  26. $save = 1;
  27. $outputfile = "output.sql";
  28. /********************************/

  29. if (!file_exists ($csvfile)) {

  30. echo "ファイルが見つかりません。正しいパスを指定していることを確認してください。n";
  31. exit;
  32. }

  33. $file = fopen($csvfile,"r" );

  34. if (!$file) {

  35. echo "データ ファイル.n を開くときにエラーが発生しました";
  36. exit;
  37. }

  38. $size = filesize( $csvfile);

  39. if (!$size) {

  40. echo "ファイルは空です。n";
  41. exit;
  42. }

  43. $csvcontent = fread ($file,$size);

  44. fclose($file);

  45. $con = @mysql_connect($databasehost,$databaseusername,$databasepassword) またはdie(mysql_error());

  46. @mysql_select_db($databasename) または die(mysql_error());

  47. $lines = 0;

  48. $queries = "";
  49. $linearray = array( );

  50. foreach(split($lineseparator,$csvcontent) as $line) {

  51. $lines++;

  52. $line = トリム($line," t");

  53. $line = str_replace("r","",$line);

  54. /**********************************

  55. この行は特殊文字をエスケープしています。 CSV ファイル内でエントリが既にエスケープされている場合は削除してください
  56. ******************************************
  57. この行は特殊文字をエスケープします。 CSV ファイル内でエントリが既にエスケープされている場合は削除します
  58. ****************************************/
  59. $line = str_replace("'","'",$line);
  60. /&**** ****/

  61. $linearray =explode($fieldseparator,$line);

  62. $linemysql = implode("','",$linearray);

  63. if($addauto)

  64. $query = "$databasetable の値に挿入('','$linemysql');";
  65. else
  66. $query = "$databasetable の値('$linemysql')に挿入;";< /p>
  67. $クエリ .= $クエリ 。 "n";

  68. @mysql_query($query);

  69. }

  70. @mysql_close($con);

  71. if ($save) {

  72. < p> if (!is_writable($outputfile)) {
  73. echo "ファイルは書き込み可能ではありません。アクセス許可を確認してください。n";
  74. }

  75. else {

  76. $file2 = fopen($outputfile,"w");

  77. if(!$file2) {

  78. echo "出力ファイル.n への書き込みエラー";
  79. }
  80. else {
  81. fwrite($file2,$queries);
  82. fclose($file2);
  83. }
  84. }
  85. }

  86. echo "csv文件中共找到 $lines 条记录.n";
?>

复制發


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