作業上の必要があるため、mysql のデータを csv ファイルにエクスポートし、PHP を使用して、販売者から提供された csv ファイルのデータを mysql データベースにインポートする必要があります。ここでは、インポートおよびインポートするための PHP を紹介します。 CSV ファイルを mysql データベースにエクスポートすると、プログラム コードを知る必要がある友人が参照できるようになります。
以下は簡単な例です
まず、プロジェクトに学生の情報を記録するテーブルstudentがあり、学生の名前、性別、年齢、その他の情報をそれぞれ記録するためのid、名前、性別、年齢があるとします。
コードは次のとおりです |
コードをコピー |
テーブル「学生」を作成 (
`id` int(11) NOT NULL auto_increment、
`name` varchar(50) NOT NULL、
`sex` varchar(10) NOT NULL、
`age` smallint(3) NOT NULL デフォルト '0'、
主キー (`id`)
) エンジン=MyISAM デフォルト文字セット=utf8;
|
インポート フォームとエクスポート ボタンを配置するための HTML インタラクティブ ページも必要です。
コードは次のとおりです
| コードをコピー
|
|
1.CSVインポート
do.php は、取得したパラメータに従ってインポートとエクスポートのプロセスをそれぞれ処理する必要があります。php の構造は次のとおりです。
include_once ("connect.php") //データベースに接続します
コードは次のとおりです
コードをコピー
| $アクション = $_GET['アクション']
if ($action == 'import') { //CSV をインポート |
//インポート処理
} elseif ($action=='export') { //CSV をエクスポート
//エクスポート処理
}
CSV インポート処理プロセス: CSV ファイルの正当性を確認します (この記事では無視します) -> 読み込みを開いて CSV ファイル内のフィールドを解析します -> ループして各フィールドの値を取得します -> 追加バッチでデータテーブルに追加 -> Complete 。
コードは次のとおりです |
コードをコピー |
if ($action == 'import') { //CSVをインポート
$filename = $_FILES['file']['tmp_name'];
If (空 ($filename)) {
echo 'インポートする CSV ファイルを選択してください! ';
出る
}
$ハンドル = fopen($ファイル名, 'r');
$result = input_csv($handle); // csv を解析します
$len_result = カウント($result);
If($len_result==0){
エコー「データがありません!」 ';
出る
}
for ($i = 1; $i
$name = iconv('gb2312', 'utf-8', $result[$i][0]); //中国語のトランスコーディング
$sex = iconv('gb2312', 'utf-8', $result[$i][1]);
$age = $result[$i][2];
$data_values .= "('$name','$sex','$age'),";
}
$data_values = substr($data_values,0,-1) //最後のカンマを削除します ;
fclose($handle) //ポインタを閉じる
$query = mysql_query("学生 (名前,性別,年齢) 値に挿入 $data_values");//データテーブルにバッチ挿入
If($クエリ){
echo 'インポートは成功しました! ';
}その他{
echo 'インポートに失敗しました! ';
}
}
PHP に付属の fgetcsv 関数は、csv を簡単に処理できることに注意してください。この関数を使用して、ファイル ポインターから行を読み取り、CSV フィールドを解析します。以下の関数は、csv ファイルのフィールドを解析し、配列として返します。
|
コードは次のとおりです
コードをコピー
| 関数 input_csv($handle) {
$out = 配列 ();
$n = 0;
While ($data = fgetcsv($handle, 10000)) { |
$num = count($data);
for ($i = 0; $i
$out[$n][$i] = $data[$i];
}
$n++;
}
$out を返します。
}
さらに、データベースにインポートするときは、1つずつ挿入するのではなくバッチ挿入を使用するため、SQLステートメントを構築するときに少し処理を行う必要があります。コードを参照してください。
2.CSVをエクスポートする
csv ファイルはカンマ区切りで構成されるプレーン テキスト ファイルであり、Excel で開くことができ、その効果は xls テーブルと同じであることがわかります。
CSV エクスポートの処理プロセス: 学生情報テーブルを読み取る -> レコードをループしてカンマ区切りフィールド情報を構築 -> ヘッダー情報を設定 -> ファイルをローカルにエクスポート (ダウンロード)
コードは次のとおりです |
コードをコピー |
...
} elseif ($action=='export') { //CSV をエクスポート
$result = mysql_query("select * from Student order by id asc");
$str = "名前、性別、年齢 n";
$str = iconv('utf-8','gb2312',$str);
While($row=mysql_fetch_array($result)){
$name = iconv('utf-8','gb2312',$row['name']); //中国語のトランスコーディング
$sex = iconv('utf-8','gb2312',$row['sex']);
$str .= $name.",".$sex.",".$row['age']."n" //カンマで区切る ;
}
$filename = date('Ymd').'.csv' //ファイル名を設定します ;
Export_csv($filename,$str); // エクスポート
}
データをローカル コンピューターにエクスポートするには、コードを次のように変更する必要があります: |
コードは次のとおりです
コードをコピー
|
| 関数エクスポート_csv($ファイル名,$データ) {
header("コンテンツタイプ:text/csv");
header("Content-Disposition:attachment;filename=".$filename);
Header('Cache-Control:must-revalidate,post-check=0,pre-check=0');
header('有効期限:0');
header('プラグマ:パブリック');
$data をエコーします。
}
インポートとエクスポートのプロセスに注意してください。統一された UTF-8 エンコーディングを使用しているため、中国語の文字が見つかった場合は必ずトランスコードする必要があります。そうしないと、中国語の文字化けが発生する可能性があります。
PHP は、CSV ファイルのインポートとエクスポートをダウンロードします: http://file.bKjia.c0m/download/2013/05/15/importCSV.rar
|
http://www.bkjia.com/PHPjc/630713.html
www.bkjia.com
| true
http://www.bkjia.com/PHPjc/630713.html技術記事
仕事の都合上、mysqlのデータをcsvファイルにエクスポートし、phpを使って販売者から提供されたデータをmysqlデータベースにインポートする必要があります...。
|