mysql LOAD DATA INFILE生成虚拟数据

时间:2014-11-05 13:17:11

标签: php mysql opencart

@OpenCart 1.5.5我尝试使用此命令从源DB导出某些表中的某些行,例如:

mysql_query("
  SELECT `group`,`key`,`value`,`serialized` 
  INTO OUTFILE '".$outputDir ."/".$dbPrefix ."setting.csv' FIELDS TERMINATED BY ',' 
  OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM `".$dbPrefix."setting` 
  WHERE `group` = 'banner' OR `group` = 'bestseller' 
  OR `group` = 'carousel' OR ` .....
")

删除这些表后,我尝试使用以下命令将此文件导入目标数据库:

mysql_query("
  LOAD DATA INFILE '". $outputDir ."/". $dbPrefix ."setting.csv'   
  INTO TABLE `".$tDbPrefix."setting` FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED 
  BY '\"' LINES TERMINATED BY '\n'
")

问题是它生成具有奇怪格式的虚拟数据;例如:

 <li class="contact-2 cle"... 

我使用UTF-8编码,数据库完全相同。

1 个答案:

答案 0 :(得分:0)

我发现了问题......我必须定义我导入的表格 正确的语法是

mysql_query("LOAD DATA INFILE '". $outputDir ."/". $dbPrefix ."setting.csv'   INTO TABLE `".$tDbPrefix."setting` FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\n' (`group`,`key`,`value`)");

这就是为什么它用于生成虚拟数据,并通过定义导入的表,它可以正常工作