[英]Passing a date from form into MySQL via PHP
我正在嘗試創建一種通過將事件添加到我的MySQL數據庫來將事件添加到我的日歷的表單。
形式如下:
<form action="actions.php?action=addEvent" method="post">
Titel: <input type="text" name="title"><br/>
Start tid(YYYY-MM-DD HH:MM): <input type="text" name="startDate"><br/>
Slut tid(YYYY-MM-DD HH:MM): <input type="text" name="endDate"><br/>
Beskrivning: <br/>
<textarea rows="15" cols="10" name="description"></textarea>
<input type="submit" value="Spara">
</form>
這是PHP腳本:
if($_GET['action'] == 'addEvent'){
$title = mysql_real_escape_string($_POST['title']);
$desc = mysql_real_escape_string($_POST['description']);
$startDate = date('Y-m-d H:i:s', strtotime($_POST['startDate'] . ":00"));
$endDate = date('Y-m-d H:i:s', strtotime($_POST['endDate'] . ":00"));
mysql_query("INSERT INTO events VALUES (null, '$title', '$desc', $startDate, $endDate);") or header("Location: ./?p=calendar.php&msg=" . mysql_error());
header("Location: ./?p=calendar.php&msg=Sparat");
}
MySQL列類型為DATETIME。 我應該如何將YYYY-MM-DD HH:MM字符串從表單轉換為允許mysql_query()工作的類型。 目前,我得到了?msg = Sparat響應,但沒有任何行輸入數據庫。
您需要在dates
字段周圍加上引號,
mysql_query("INSERT INTO events VALUES (null, '$title', '$desc', '$startDate', '$endDate');") or header("Location: ./?p=calendar.php&msg=" . mysql_error());
您可以調整查詢以在日期前后使用單引號。 請閱讀此 。
$query_manual = "INSERT INTO tablename (col_name, col_date) VALUES ('DATE: Manual Date', '2008-7-04')";
另外,要求您的用戶以該格式鍵入日期可能會有些麻煩。 人們期待這些日子的日期選擇器。 這是我在jqueryui中經常使用的一個非常簡單的代碼。 您可以將輸入日期格式設置為YYYY-MM-DD。 如果需要添加時間,可以將jquery datepicker擴展為timepicker 。
您收到的日期格式正確。 因此,您無需更改它。 在mysql_query中使用時,您只需要在日期前后加上單引號即可。 所以你可以:
mysql_query("INSERT INTO events VALUES (null, '$title', '$desc', '".$_POST['startDate']."', '".$_POST['endDate']."');") or header("Location: ./?p=calendar.php&msg=" . mysql_error());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.