[英]How can I store a date in a MySQL database using PHP?
我想在MySQL數據庫中存儲日期值。
我有一個名為A.php
PHP頁面,它有3個輸入: d
, m
, y
,其中d = (1 ... 31)
, m =(1 ... 12)
和y = (1970 to 2009)
。
現在在b.php
我收集這些值,我需要存儲在我的數據庫中。
我的數據庫有一個名為dob
的字段,它是日期類型。
如何從d
, m
, y
構造日期類型的變量並將其存儲在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.