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 脚本现在失败。网络服务器只知道它失败了,但由于网络服务器不知道任何具体的事情,它只会返回所谓的内部服务器错误(错误发生在内部),代码 500。确切的错误信息被隐藏了,因为该错误不是预期的内部信息不得外泄。

仅从消息中,没有人能说出发生了什么。您需要查看网络服务器的错误日志并检查内部报告是什么。

在您的情况下,我会假设您的 PHP 脚本有一个致命错误。您还可以启用 PHP 错误显示和日志记录,请参阅PHP 不显示错误消息

当您这样做时,您可能会看到更多错误消息。在我们的错误参考中解释了常见的错误消息:参考 - 这个错误在 PHP 中是什么意思?.

如果我猜测一下,我会说你看到这个是因为你的 PHP 文件没有解析。最有可能出现以下错误:

故障排除快乐!

于 2012-12-18T19:36:22.477 回答