-
-
/** - * CSV ファイルを mysql データベースにインポートします
- * 編集: bbs.it-home.org
- */
- $databasehost = "localhost";
- $databasename = "テスト";
- $databasetable = "サンプル";
- $databaseusername ="test";
- $databasepassword = "";
- $fieldseparator = ",";
- $lineseparator = "n";
- $csvfile = "filename.csv";
/********************************/
- /* これらのレコードの先頭に空のフィールドを追加しますか?
- /* これは、最初のフィールドが auto_increment 整数であるテーブルがある場合に便利です
- /* と csv ファイルレコードの前に空のフィールドなどはありません。
- /* はいの場合は 1、いいえの場合は 0 を設定します。注意: よくわからない場合は 1 に設定しないでください。
- /* この追加フィールドがテーブルに存在しない場合、間違ったフィールドにデータがダンプされる可能性があります
- /********************************/
- $addauto = 0;
- /********************************/
/* mysql クエリをファイルに保存しますか? 「はい」の場合、$save を 1 に設定します。
- /* ファイルのアクセス許可を 777 に設定する必要があります。ftp 経由でサンプル ファイルをアップロードし、
- /* アクセス許可を変更するか、プロンプトで次のコマンドを実行します: touch Output.sql && chmod 777 Output .sql
- /********************************/
- $save = 1;
- $outputfile = "output.sql";
- /********************************/
if (!file_exists ($csvfile)) {
- echo "ファイルが見つかりません。正しいパスを指定していることを確認してください。n";
- exit;
- }
$file = fopen($csvfile,"r" );
if (!$file) {
- echo "データ ファイル.n を開くときにエラーが発生しました";
- exit;
- }
$size = filesize( $csvfile);
if (!$size) {
- echo "ファイルは空です。n";
- exit;
- }
$csvcontent = fread ($file,$size);
fclose($file);
$con = @mysql_connect($databasehost,$databaseusername,$databasepassword) またはdie(mysql_error());
- @mysql_select_db($databasename) または die(mysql_error());
$lines = 0;
- $queries = "";
- $linearray = array( );
foreach(split($lineseparator,$csvcontent) as $line) {
$lines++;
$line = トリム($line," t");
$line = str_replace("r","",$line);
/**********************************
- この行は特殊文字をエスケープしています。 CSV ファイル内でエントリが既にエスケープされている場合は削除してください
- ******************************************
- この行は特殊文字をエスケープします。 CSV ファイル内でエントリが既にエスケープされている場合は削除します
- ****************************************/
- $line = str_replace("'","'",$line);
- /&**** ****/
$linearray =explode($fieldseparator,$line);
$linemysql = implode("','",$linearray);
if($addauto)
- $query = "$databasetable の値に挿入('','$linemysql');";
- else
- $query = "$databasetable の値('$linemysql')に挿入;";< /p>
$クエリ .= $クエリ 。 "n";
@mysql_query($query);
- }
@mysql_close($con);
if ($save) {
- < p> if (!is_writable($outputfile)) {
- echo "ファイルは書き込み可能ではありません。アクセス許可を確認してください。n";
- }
else {
- $file2 = fopen($outputfile,"w");
if(!$file2) {
- echo "出力ファイル.n への書き込みエラー";
- }
- else {
- fwrite($file2,$queries);
- fclose($file2);
- }
- }
}
- echo "csv文件中共找到 $lines 条记录.n";
?>
复制發 |