我想将数据从文本文件:file.txt传输到数据库中的表。
代码:
<?php
$host="mysq44.000webhost.com"; // Host name
$user="a203563_user"; // Mysql username
$pass="123omr"; // Mysql password
$db_name="a2031563_global"; // Database name
$tbl_name="table"; // Table name
$file = "file.txt";
$sql=mysql_connect("$host", "$user", "$pass");
if (!$sql) {
die("Could not connect: " . mysql_error());
}else{
mysql_select_db("$db_name");
$re="LOAD DATA INFILE '$file' INTO TABLE $tbl_name FIELDS TERMINATED BY ',')";
$result = mysql_query("$re");
if (!$result) {
die("Could not load. " . mysql_error());
}
}
?>
但是会出现这样的消息:
Could not load. You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server
version for the right syntax to use near 'table FIELDS
TERMINATED BY ',')' at line 1
任何人都可以给我一些解决方案或一些想法吗?
答案 0 :(得分:0)
单词&#39;表&#39;在MySQL中是一个保留字,你不能调用表,&#39; table&#39;,你需要更改表的名称或在表名周围使用反引号(`)。你似乎也有结束括号,但没有开头的 - 你想要修复它以使这个工作。
万一你需要它,这里是LOAD INFILE命令的完整语法:
LOAD DATA LOCAL INFILE 'somefile.txt' INTO TABLE abc
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(col1, col2, col3);
答案 1 :(得分:0)
您的load infile语句有3个问题:
用于从MySQL拥有的MUST加载数据的CSV文件,请使用以下命令行:
chown mysql.mysql file.txt
所以一般来说,你需要制作像
这样的负载信息语句 $re = "LOAD DATA INFILE '$file' INTO TABLE `$tbl_name` FIELDS TERMINATED BY ','";