LOAD DATA LOCAL INFILE的MySQL/PHP问题
这里是我的MySQL表结构LOAD DATA LOCAL INFILE的MySQL/PHP问题
id | tracking_number | order_id
下面是CSV文件的结构: (有时ORDER_ID缺失,这似乎是导致问题)
"1R2689Y603406","33097"
"1R2689Y603404","33096"
"1R2689Y603414",
"1R2689Y603429","33093"
"1R2689Y603452",
这是我这是不工作电流SQL查询: (该文件正在上传,并且被正确读取,它的查询本身,这是造成问题)
$sql = 'LOAD DATA LOCAL INFILE "'.$_FILES['my_file']['tmp_name'].'"
INTO TABLE table_tracking
FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY "\""
LINES TERMINATED BY "\n"
(tracking_number,order_id)';
mysql_query($sql) or die(myqsl_error());
我的查询出了什么问题?谢谢你的帮助!
编辑:更改CSV结构以表示丢失的数据有时会发生。 更改的查询相匹配,现在我使用的是一个
只是想在这里(不是100%的信心),但你尝试将目标列是这样的:
mysql_query("LOAD DATA LOCAL INFILE '".$_FILES['my_file']['tmp_name']."'
INTO TABLE table_tracking FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '\"'
LINES TERMINATED BY '\n'
(tracking_number,order_id)");
您的表三列只提供两个数据。
这为我工作:
$sql = 'load data local infile "c:/users/ramon/desktop/1.csv"
into table test fields terminated by ","
optionally enclosed by "\""
lines terminated by "\n"';
mysql_query($sql) or die(myqsl_error());
你也可能需要确保你的第三列具有缺省值。
我有理由相信这是一个逃避的问题。 – voldomazta
这似乎工作,除了我遇到问题。一些数据是不完整的(缺少订单号),这似乎是抛弃了。 – kylex
您可能只需将缺省值放置到缺少数据的字段,以使其不是必备条件。 – voldomazta
相反的$_FILES['my_file']['tmp_name']
,尝试
dirname(__FILE__)."/".$_FILES['my_file']['tmp_name']
dirname(__FILE__)
将使得像完整的目录路径 'C:/路径/到/目录'。
你有什么实际的错误?或者实际的意外行为? – Romain
该信息不会加载到数据库中。 – kylex
尝试mysql_query(...)或死(mysql_error());并告诉我们你看到了什么。 – voldomazta