2014-09-25 63 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