2016-04-25 50 views
0

我有一個php,它是爲了清理一些MySQL數據表(截斷命令),並輸出屏幕顯示任務已完成的幾條消息(ECHO語句)。在MySQLI命令後發生PHP回聲陳述

PHP然後通過LOAD DATA INFILE命令將幾個CSV文件加載到最近清理的數據庫表中。這是由幾個回聲陳述表明任務完成。

我遇到的問題是所有輸出到屏幕只有在MYSQL工作完成後。我希望echo語句位於MYSQL進程之前,這可能需要一分鐘或更長時間,以便用戶知道進程正在進行並可能需要一些時間。

echo "<center><strong>Cleaning up tables in preparation of importing data files...<strong></center><br>"; 

//select the database we are going to be using 
mysqli_select_db($conn, "database"); 

//truncate (empty) the three tables 
mysqli_query($conn, 'TRUNCATE TABLE firsttable;'); 
mysqli_query($conn, 'TRUNCATE TABLE secondtable;'); 
mysqli_query($conn, 'TRUNCATE TABLE thirdtable;'); 

//provide feedback on process 
echo "<center><strong>Tables cleaned!</strong></center><br>"; 

//queries which will load datafiles into the tables 
$query = "LOAD DATA INFILE \"D:/wamp64/www/folder/firsttable.csv\" INTO TABLE altoccurrences COLUMNS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' ESCAPED BY '\"' LINES TERMINATED BY '\n' IGNORE 1 LINES"; 
$query2 = "LOAD DATA INFILE \"D:/wamp64/www/folder/secondtable.csv\" INTO TABLE altimages COLUMNS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' ESCAPED BY '\"' LINES TERMINATED BY '\n' IGNORE 1 LINES"; 
$query3 = "LOAD DATA INFILE \"D:/wamp64/www/folder/thirdtable.csv\" INTO TABLE altidentifications COLUMNS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' ESCAPED BY '\"' LINES TERMINATED BY '\n' IGNORE 1 LINES"; 

//send queries to MySQL and check for potential errors. 
$result = mysqli_query($conn, $query) or die ('Could not connect to mysqli: ' . mysqli_error($conn)); 
$result2 = mysqli_query($conn, $query2) or die ('Could not connect to mysqli: ' . mysqli_error($conn)); 
$result3 = mysqli_query($conn, $query3) or die ('Could not connect to mysqli: ' . mysqli_error($conn)); 

//provide feedback on process 
echo "<center><h2><strong>Your Files Have Been Inserted into Database!</strong></h2></center><br>"; 

回答

1

PHP通常在發送之前緩衝內容。在每個回聲之後嘗試以下代碼來嘗試強制PHP立即發送數據。

@flush(); 
+0

只需使用flush();本身還不夠。我不得不使用:ob_flush();之後是flush();以便在mysql進程之前有輸出。 – QuePID

+0

哎呀。好吧,很高興它把你帶到了正確的方向。感謝接受。 – dAngelov