簡體   English   中英

通過PHP將日期從表單傳遞到MySQL

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM