簡體   English   中英

如何使用PHP在MySQL數據庫中存儲日期?

[英]How can I store a date in a MySQL database using PHP?

我想在MySQL數據庫中存儲日期值。

我有一個名為A.php PHP頁面,它有3個輸入: dmy ,其中d = (1 ... 31)m =(1 ... 12)y = (1970 to 2009)

現在在b.php我收集這些值,我需要存儲在我的數據庫中。

我的數據庫有一個名為dob的字段,它是日期類型。

如何從dmy構造日期類型的變量並將其存儲在DB中?

mysql日期字段采用'yyyy-mm-dd'格式,因此請將其存儲,但將其作為字符串從PHP傳遞,包括破折號。

你可以傳遞一個字符串:

$sql = 'insert into tbl (dob) values 
        (\'' . $month . '/' . $day . '/' . $year . '\')';

MySQL將為您進行正確的轉換,因此您甚至不必擔心它。

確保您已完成mysql_real_escape_string以防止對所有變量進行SQL注入。

太長。 簡單地說:

$dt = sprintf("%'04s-%'02s-%'02s",$y,$m,$d);
mysql_query("insert into mytable (dob) values ('$dt')");

要構造date類型的變量,請使用mktime()函數:

$date = mktime(0, 0, 0, $month, $day, $year);

要將$ date存儲在數據庫中,請將日期轉換為字符串:

$sql = "INSERT INTO table (dob) VALUES ('" . date('Y-m-d', $date) . "')";

或者,使用mySQLi:

$query = $db->prepare('INSERT INTO table (dob) VALUES (FROM_UNIXTIME(?))');
$query->bind_param('i', $date);
$query->Execute();

最好只將它作為UNIX時間戳存儲在數據庫中,因為它是跨平台使用的

mktime()

然后,當您從數據庫中檢索它時,請使用

date()

將其轉換為您想要的任何格式(例如2009年10月31日; 2009年10月31日;等)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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