3

, で区切られたデータを含むテキスト ファイルをインポートしたい。ほとんどの人が使用するいくつかのソース「LOAD DATA INFILE」を読みました。だから、私もそれがうまくいくと思いました。

ただし、そうすると、このアクセス許可エラーが発生します。このコマンドを実行したところ、次のようになりました。

LOAD DATA INFILE '/public_html/nyccrash.txt' INTO TABLE nyccrash; 

しかし、それは私にこのエラーを与えます:

ERROR 1045(28000): Access denied for user 'username'@'%' (using password: YES)

私がしなければならなかったのは完全なファイルパスを含めることだけだったという他のスレッドを読んだことがありますが、それでもうまくいきませんでした。

テキスト ファイルをデータベースのテーブルにインポートする別の方法はありますか? SQL または PHP を使用します。

編集:

使用できるこのコマンドを見つけました:

<?php
$row = 1;
$handle = fopen("nyccrash.txt", "r");
echo("<table>");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
    echo("<tr>\r\n");
    foreach ($data as $index=>$val) {
        echo("\t<td>$val</td>\r\n");
    }
    echo("</tr>\r\n");
}
echo("</table>");
fclose($handle);

?>

これにより、データを読み取り、テーブルを作成して印刷することができます。上記を使用してデータを収集した後、 INSERT INTO table sql コマンドを使用することもできますが、テーブルに値を挿入する方法がわかりません。つまり、値をループして挿入します。txt ファイル内のデータに、内容の属性またはヘッダーが含まれていません。だから...データを正しい列に並べ替える方法について少し混乱しています。

4

4 に答える 4

0

これらの行に沿って何かを試してください:

// Connect to Database
$db_Host = "";
$db_Username = "";
$db_Password = "";
mysql_connect($db_Host,$db_Username,$db_Password) or die("MySQL - Connection Error");
mysql_select_db($db_Database) or die("MySQL - Cannot Select Database");

mysql_query("LOAD DATA LOCAL INFILE '/home/username/public_html/Database.txt' INTO TABLE yourtablename") or die("MySQL - Query Error - " . MySQL_Error());

//MySQL is automatically disconnected from when PHP ends.
于 2013-05-20T18:32:49.800 に答える
0

これを数回行う場合は、データを Excel にインポートして SQL クエリをマウントし、concat を使用して SQL 行をマウントし、クライアントにコピー/貼り付けして実行できます。多くのテーブルにはあま​​り役に立ちません。そうであれば、php を使用して csv ファイルをアップロードし、テーブルに入力するのは難しくありません。

于 2013-05-20T12:59:30.497 に答える