テスト.テキスト
abc,def,ghi,jkl,...
とにかくデータベースの各行にそれぞれを挿入することは可能ですか?
1 abc
2 def
...
何か提案はありますか?
コンマが常に値の区切りであると仮定すると、PHP は必要ありません。
ページhttp://dev.mysql.com/doc/refman/5.0/en/load-data.htmlをチェックしてください
あなたが始めることができる例は
mysql> LOAD DATA INFILE 'C:\path\data.txt' INTO TABLE db2.my_table;
phpfile_get_contents();
関数を見てください。
http://php.net/manual/en/function.file-get-contents.php
phpexplode();
関数を見てください。
http://php.net/manual/en/function.explode.php
これにより、文字列が配列に取得され、データベースに挿入できます。
PHP の関数
を使用して MySQLINSERT
クエリを実行できます。http://php.net/manual/en/mysqli.query.phpmysqli_*
Text.txt ファイルの大きさによって異なりますが、小さい場合は次のようにできます。
<?php
$text = file_get_contents('Test.txt');
$arrayOfTxt = explode(',',$text);
foreach($arrayOfTxt as $value){
//Insert trim($value)
}
?>
$file = fopen('test.txt', 'r');
$csv_array = fgetcsv($file);
foreach ($csv_array as $csv_data){
//Do your insertion code here.
}
私が間違っていなければ、explodeでそれを行うことができます
$file = file_get_contents('file.txt');
$var = explode(",", $file);
変数は、この$var
場合、this('abc','def','ghi','jkl') を持つ 4 つの位置 (0,1,2, 3) を含む配列になります。
foreach
いいえ、テーブルに値を挿入することはできません:
foreach($var as $x)
{
//YOUR INSERT GOES HERE. PASSING THE $x TO YOUR QUERY
}
Brelandの回答を補完するだけで、このようにMySQLで直接これを行うこともできますか?
LOAD DATA INFILE '/test.txt' INTO TABLE test TERMINATED BY ','
必要に応じて、これを追加できます:LINES STARTING BY 'xxx'
挿入を開始する場所を定義します。ファイルの一部の行を避けたい場合に便利です。