所以我正在開發一個Web應用程序,它抓取一個.csv文件並解析它。然後將它提交給mysql數據庫。我正在成功檢索數據,並且能夠輸入所有正在檢索的數值。我遇到的一個問題是將日期插入到sql數據庫中。使用PHP插入日期到mySql數據庫,這是一個格式問題?
我沒有收到我知道的錯誤,並且日期值僅爲0000-00-00。當我運行腳本時,通過在PHP中回顯數據來檢查錯誤。它回聲良好,格式爲yyyy-mm-dd。如果你想給它一個測試運行,下面是php代碼運行良好,不幸的是我沒有一個公共服務器讓你測試它,如果你的系統上沒有運行wamp/lamp/equivalent。
我是否缺少一些簡單的東西?爲什麼這個日期不能正確插入?這是錯誤的格式嗎?它看起來是正確的格式,但是誰知道?
<?php
//Connect to Database
$con=mysqli_connect("localhost","root","","stockmarket");
// Check connection
if (mysqli_connect_errno($con))
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// Setup URL to download csv file
$requestUrl = "http://ichart.yahoo.com/table.csv?s=GOOG";
// Pull data (download CSV as file)
$CSV = file_get_contents($requestUrl);
// Split results, trim way the extra line break at the end
$quotes = explode("\n",trim($CSV));
//Explore array with .csv contents
foreach($quotes as $quoteraw) {
$quoteraw = str_replace(", I", " I", $quoteraw);
$quote = explode(",", $quoteraw);
echo $quote[0];//error check, should print dates in correct format
//Insert contents into database
mysqli_query($con,"INSERT INTO nasdaq (Symbol,Date,Open,High,Low,Close,Volume,Adjusted Close) VALUES ('goog',$quote[0],$quote[1],$quote[2],$quote[3],$quote[4],$quote[5],$quote[6])");
}
mysqli_close($con);
?>
如果您檢查了mysql錯誤,您可能會看到它。首先,日期是一個保留字。 – Jessica
好的,這只是一個簡單的線路來檢查錯誤? –
@Jessica'date'是一個保留關鍵字,但允許在不轉義的情況下使用。真正的問題是其中的一列包含空格。對於OP,您需要使用單引號將其轉義。 –