2010-06-01 81 views
1

你好,我想發送一個日期和時間格式與MySQL日期時間格式兼容的日期和時間,至少是:0000-00-00 00:00: 00 ...將日期和時間值插入到PHP的MySql中

進出口使用此代碼誰帶來了從PHP命令的日期和時間:

$insert = "INSERT INTO sms (ref, texto, fecha) 
    VALUES ('".$_POST['usuario']."', '".$_POST['sms']."', '".date(DATE_ATOM, mktime(0, 0, 0, 7, 1, 2000))."')"; 
    $add_member = mysql_query($insert); 

我真的想這樣做,但有MySQL命令,我的意思是,使用日期和時間從MySQL服務器。由於

+1

你應該對SQL注入和消毒用戶輸入讀取出當前時間。您似乎在編寫易受攻擊的代碼。 – Hammerite 2010-06-01 04:38:14

+0

你想插入什麼日期?當前日期和時間或2000年7月1日一個? – 2010-06-01 08:26:27

回答

1

使用NOW()插入記錄INSERT INTO table (date) VALUES (NOW())

對於您的代碼時:

$insert = "INSERT INTO sms (ref, texto, fecha) 
VALUES ('".$_POST['usuario']."', '".$_POST['sms']."', NOW())"; 
$add_member = mysql_query($insert); 
+0

你可以在我的代碼中添加嗎? $ insert =「INSERT INTO sms(ref,texto,fecha) VALUES('」。$ _ POST ['usuario']。「','」。$ _ POST ['sms']。'','「。日期(DATE_ATOM,mktime(0,0,0,7,1,2000))。「')」; $ add_member = mysql_query($ insert); – DomingoSL 2010-06-01 03:59:59

+0

@DomingoSL - 好的,我更新了我的帖子。我的代碼將當前時間發佈到MySQL服務器上。它不會在2000年7月1日發佈。如果你打算這樣做,你最好只是做'2000-07-01' – 2010-06-01 04:02:05

+0

由於某些原因它不起作用 – DomingoSL 2010-06-01 04:15:17

1

MySQL允許僅限於作爲輸入提供的日期格式號。從MySQL manual

只支持以下各節中描述的格式。預計你會提供合法價值。如果您使用其他格式的值,則可能會出現不可預知的結果。

你的,這是不被MySQL支持(儘管它可能解析,並根據當前的SQL模式正確地存儲)格式Y-m-d\TH:i:sP(該DATE_ATOM常數的值)提供日期。

您應該改用date('Y-m-d H:i:s', ...)

P.S.而且,是的,你應該保護你的代碼免受SQL注入。

+0

根據[MySQL手冊](http://dev.mysql.com/doc/refman/5.1/en/date-and-time-literals.html),在MySQL 5.1(至少)中,您可以使用DATE_ATOM格式。 :日期和時間部分可以用T分隔而不是空格。例如,'2012-12-31 11:30:45''2012-12-31T11:30:45'是等同的 – Lupuz 2015-04-22 10:00:30

0
$date = date("Y-m-d H:i:s", mktime(0, 0, 0, 7, 1, 2000)); 

$usuario = mysql_real_escape_string($_POST['usuario']); 
$sms = mysql_real_escape_string($_POST['sms']); 
$date = mysql_real_escape_string($date); 

$sql = "INSERT INTO sms (ref, texto, fecha) VALUES ('$usuario', '$sms', '$date')"; 
mysql_query($sql) or trigger_error(mysql_error().$sql); 
0

首先我要告訴你,你應該遵循的意見建議和SQL注入閱讀起來。

此代碼將以正確的格式插入當前時間的記錄。

$insert = "INSERT INTO sms (ref, texto, fecha) 
VALUES ('".$_POST['usuario']."', '".$_POST['sms']."', '".date('Y-m-d H:i:s')."')"; 
$add_member = mysql_query($insert); 

如果你不想讓你需要改變 date('Y-m-d H:i:s')date('Y-m-d H:i:s', some_unix_timestamp)