2015-08-30 17 views
0

所以即時通訊測試我的代碼和我從我的數據庫中選擇數據。現在select statemtent成功了。選擇後,我想導出數據到一個文件名爲當前日期的CSV文件。但是,當我在sql語句中使用date()時,它不會工作。它工作,如果我只是把123.csv作爲文件名。任何人都可以幫助你非常感謝你。這裏是我的代碼...PHP使用SQL語句內的date()作爲文件名使用

define("DB_HOST", "localhost"); 
define("DB_USER", "root"); 
define("DB_PASS", ""); 
define("DB_NAME", "envoy"); 
function db_connect() { 

    $db = mysqli_connect(DB_HOST, DB_USER, DB_PASS) or die("ERROR!"); 
    mysqli_select_db($db, DB_NAME); 

    return $db; 
} 

$db = db_connect(); 
date_default_timezone_set("EST5EDT"); 
$date = date('m-d-Y'); 
echo $date; 
$sql2 = "SELECT * INTO OUTFILE 'C:/Users/junji/Desktop/'".$date."'.csv' FIELDS TERMINATED BY ',' FROM brochureinfo where sku LIKE '%".$_GET['search']."%' || name LIKE '%".$_GET['search']."%' ORDER BY name "; 
$rs2 = mysqli_query($db, $sql2); 
mysqli_close($db); 

所以基本上我每次我刷新頁面,應該創建一個文件中沒有任何輸出,因爲我只是測試代碼。再次感謝你!

回答

2

我想你需要修復的$的這部分SQL2選擇:

"'.csv' 

它改成這樣:

".csv' 

我錯過了第一次,但我猜你固定它:

'C:/Users/junji/Desktop/'" 

應該是:

'C:/Users/junji/Desktop/" 

希望這有助於

+0

查爾斯釘它。如果你做一些調試,你會很快抓住這個東西。要親自看看,在SELECT行後面執行print_r($ sql2)。它會輸出你串在一起的SQL語句 - 它是無效的SQL。 –

+0

現在我的問題是日期被存儲在數據庫中的十進制數ughhhh。也許你知道答案?謝謝!! – jeeeee

+0

我沒有看到任何可以將日期存儲在數據庫中的代碼。是否有更多的代碼沒有發佈?如果是,請編輯您的問題並添加代碼。 – CharlesEF

0

您在查詢中有語法錯誤,單引號()是沒有必要的之前和你的變量$日期之後。

$sql2 = "SELECT * INTO OUTFILE 'C:/Users/junji/Desktop/'".$date."'.csv' FIELDS TE... " 

應當糾正如下

$sql2 = "SELECT * INTO OUTFILE 'C:/Users/junji/Desktop/".$date.".csv' FIELDS TE... "