2013-10-03 58 views
0

我試圖創建一個窗體,並且它的一部分將允許用戶記錄一個日期。 我發現了一個在線代碼片段,它爲用戶創建一個日曆來選擇他們的日期,但是當我嘗試將其上傳到數據庫時,我得到一個空的查詢錯誤。 任何人都可以看到我的錯誤在哪裏?我試圖找到有關在html表單中使用日曆的教程,但是在我的搜索中沒有任何值得推薦的東西,如果任何人都可以推薦一個,我會非常感激。將日曆記錄上傳到MySQL數據庫

<html> 
<head> 
    <link href="http://ajax.googleapis.com/ajax/ 
libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> 
    <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script> 

    <script> 
    $(document).ready(function() { 
    $("#datepicker").datepicker(); 
    }); 
    </script> 
</head> 
<body> 
<form action="uploadCalendar.php" method="post"> 
    <strong>Date :</strong> <input name="date" id="datepicker" /> 
    <input type="submit" name="submit" value="Submit"/> 
</form> 
</body> 
</html> 

這裏是我的代碼上傳到數據庫。我只與日曆元素修煉前我引入多個字段上傳到數據庫

$Date = $_POST['date']; 

$query = $mysqli->query("INSERT INTO `calendar` (`date`) VALUES '$Date'"); 
if(!mysqli_query($mysqli, $query)) 
{ 
    echo "ERROR".mysqli_errno($query); 
} 
else 
{ 
    header ("Location: calendar.php"); 
} 
+0

感謝Jonathon和Lionel。在你的兩個答案中,我有它的工作!我非常感謝幫助和指導。 – Steve73NI

回答

0

你混的mysqli的OO版本的程序。

if(!mysqli_query($mysqli, $query)) 

正試圖執行另一個查詢,如查詢值,指定TRUE:

$query = $mysqli->query("INSERT INTO `calendar` (`date`) VALUES '$Date'"); 

後,這將返回TRUE,如果查詢成功,因此,如果它沒有成功,就行了。另外,我認爲你的查詢中有一個語法錯誤,即我認爲應該有()周圍的值,因爲你指定的列。試試這個:

$Date = $_POST['date']; 

$ret = $mysqli->query("INSERT INTO `calendar` (`date`) VALUES ('" . $mysqli->real_escape_string($Date) . "');"); 
if(!$ret) 
{ 
    echo "ERROR"; 
} 
else 
{ 
    header ("Location: calendar.php"); 
} 

**另外,在數據庫查詢中使用它之前,一定要確保轉義用戶輸入。

+0

感謝Jonathon,我仍然試圖讓我的頭在PHP附近,所以那裏我得到面向對象和程序混合起來。 – Steve73NI

0

我假設字段date的類型是DATE。 DATE需要格式爲yyyy-mm-dd的日期值。

您的日曆但與格式mm/dd/yyyy的

因此,你需要要麼改變在MySQL查詢的格式返回值:

$query = $mysqli->query("INSERT INTO `calendar` (`date`) VALUES (STR_TO_DATE('$Date', '%m/%d/%Y'))"); 

或更改jQuery的返回的日期格式,以便它符合常規日期格式。