2014-09-25 201 views
1

我正在处理客户端可以选择CSV文件以将数据导入其数据库的页面。成功导入后,我想展示例如“插入50条记录”。我不确定在使用LOAD DATA LOCAL INFILE时,mysql_affected_rows()会执行此操作,因为它没有显示任何消息。MySQL LOAD DATA LOCAL INFILE显示导入行的数量

if ((isset($_POST["MM_import"])) && ($_POST["MM_import"] == "confirm_import")) { 

       $importSQL = sprintf("LOAD DATA LOCAL INFILE '$data_file' INTO TABLE digi_form FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r' IGNORE 1 ROWS"); 

       mysql_select_db($database_MBM, $MBM); 
       $Result2 = mysql_query($importSQL, $MBM) or die(mysql_error());    
       printf ("Records deleted: %d\n", mysql_affected_rows()); 

       $insertGoTo = "process-importdata.php"; 
       if (isset($_SERVER['QUERY_STRING'])) { 
       $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?"; 
       $insertGoTo .= $_SERVER['QUERY_STRING']; 
       } 
       header(sprintf("Location: %s", $insertGoTo)); 
      } 

回答

0

您可以使用PHP函数mysql_info()

// ... 
$Result2 = mysql_query($importSQL, $MBM) or die(mysql_error());   
printf ("Information: %s\n", mysql_info()); 

得到这个信息,即LOAD日期INFILE回报:

当LOAD DATA INFILE语句结束时,会返回一个 信息字符串格式如下:

记录:1删除:0 S kipped:0警告:0

来源:LOAD DATA INFILE syntax

+0

感谢您的答复!当谈到PHP和MySQL时,我并不是一个很专业的人,但我知道的比基本更多,因此我不确定这个问题听起来有点愚蠢 - 我已经将mysql_info()函数添加到了我的代码,但我仍然看不到任何显示添加记录数的消息。表单动作设置为提交给自己,还是必须在其他地方回显函数? – 2014-09-26 10:05:52

+0

经过大量的反复试验,我完成了以下完美的工作。出于某种原因,我不得不将mysql_info()函数保存到一个名为$ mysql_info的变量中,然后我必须通过添加返回值$ mysql_info来返回mysql_info()函数。现在一切都很好! – 2014-09-26 12:06:01