2

PHP スクリプトを使用して CSV を MySQL テーブルにインポートしようとしています。次の SQL コマンドは、CSV ファイルを SQL テーブルに正常にインポートします。

mysql> LOAD DATA LOCAL INFILE 'property_re_1.csv' 
-> REPLACE INTO TABLE `markers`
-> FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '\\'
-> LINES TERMINATED BY '\n' IGNORE 1 LINES;
Query OK, 315 rows affected (0.01 sec)
Records: 315  Deleted: 0  Skipped: 0  Warnings: 0

次に、この SQL コマンドを PHP スクリプトに変換します。PHPスクリプトを書く私の試みは次のとおりです。

<?PHP
$dbhost = 'localhost';
$dbuser = 'myusername';
$dbpasswd = 'mypassword';
$db = "db_markers";

$dbh = mysql_connect($dbhost, $dbuser, $dbpasswd) or die("Unable to connect to SQL server");
$my_db = @mysql_select_db($db, $dbh) or die("Unable to select database");

$file = $_SERVER['DOCUMENT_ROOT']."/path/property_re_1.csv";

$result=mysql_query("LOAD DATA LOCAL INFILE '$file' REPLACE INTO TABLE `markers` FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n' IGNORE 1 LINES");   
?>

このスクリプトはエラーになります:

HTTP エラー 500 (内部サーバー エラー): サーバーが要求を実行しようとしたときに、予期しない状況が発生しました。

エラーログには次のように表示されます。

[18-Dec-2012 12:37:38] PHP Parse error: syntax error, unexpected    T_CONSTANT_ENCAPSED_STRING in /path/testconnect.php on line 13

$Result 変数は 13 行目で呼び出されるため、エラーはその中にあるはずです。

このエラーの原因がわかりません。どんな助けでも大歓迎です!

4

1 に答える 1

3

エラーの原因は、ウェブサーバーに送信したリクエストです。ウェブサーバーはリクエストを実行しようとし、スクリプトを実行してそれを実行します。あなたの場合は PHP スクリプトです。

PHP スクリプトが失敗するようになりました。Web サーバーは失敗したことだけを知っていますが、Web サーバーは具体的なことを何も知らないため、いわゆる内部サーバー エラー(内部で発生したエラー)、コード 500 のみを返します。エラーは予期されていないため、正確なエラー情報は隠されています。また、内部情報を外部に漏らしてはなりません。

メッセージだけでは、何が起こったのかは誰にもわかりません。Web サーバーのエラー ログを調べて、内部レポートの内容を確認する必要があります。

あなたの場合、PHPスクリプトに致命的なエラーがあると思います。PHP エラーの表示とログを有効にすることもできます。 PHP Does Not Display Error Messagesを参照してください。

これを行うと、さらにエラー メッセージが表示される場合があります。一般的に発生するエラー メッセージは、エラー リファレンスで説明されています。.

推測すると、PHP ファイルが解析されないため、これが表示されていると言えます。ほとんどの場合、次のエラーが発生します。

トラブルシューティングをお楽しみください。

于 2012-12-18T19:36:22.477 に答える