如何使用php在mysql中插入诺曼日期?

时间:2014-10-08 13:57:44

标签: php mysql

我对php和mysql&需要一些帮助。 我想在mysql表中插入日期,格式为dd / mm / yyyy。

我的表格中有4列:id,name,age&生日。

我的HTML代码

<form action="php_creat_cliente.php" method="post">
Name     : <input name="reference" type="text" /><br />
Age      : <input name="focode" type="text" /><br /> 
Birthday : <input name="date" type="text" /><br />
</form>

我的PHP代码

<?php
include('config.php');

$name=$_POST['name'];
$age=$_POST['age'];
$birthday=$_POST['birthday'];

$save=mysql_query("INSERT INTO loan (name, age, birthday) VALUES ('$name', '$age', '$birthday')");

header("location: index.html");
exit();
?>

目前,日期是以mm / dd / yyyy格式插入的,但我需要它采用dd / mm / yyyy格式。

2 个答案:

答案 0 :(得分:1)

您有多种方法,但如果您将其作为日期或时间戳插入,则效果最佳。

第一种方法是,如果将其存储在varchar字段中,但在这种情况下,您无法使用mysql date functions

以常规方式插入:YYYY-MM-DD

而且,当你需要它时,你可以使用mysql日期函数来格式化它,或者你也可以用php代码格式化它。

如果你假设,你的$_POST['birthday'];是mm-dd-yyyy格式,那么你应该做这样的事情

//This varaible will come from the form, this is just a test now!
$_POST["birthday"] = 'mm-dd-yyyy';

$month = substr($_POST["birthday"], 0, 2);
$day = substr($_POST["birthday"], 3, 2);
$year = substr($_POST["birthday"], 6);
$birthday = $year . "-" . $month . "-" . $day;
$save = mysql_query("INSERT INTO loan (`name`, `age`, `birthday`) VALUES ('".$name."','".$age."','".$birthday."')");

答案 1 :(得分:0)

MySQL接受格式为&#39; yyyy-mm-dd&#39;的字符串。或者&#39; yyyymmdd&#39;对于约会。因此,您可以在文本字段中以您想要的任何格式输入它,只要您确保在将其传递给数据库之前将其重新格式化(在您的代码中)为有效格式(如我所提到的格式)。

或者您可以自己指定格式:

$save=mysql_query("INSERT INTO loan (name, age, birthday) 
    VALUES ('$name', '$age', STR_TO_DATE('$birthday', '%d-%m-%Y'))");

jQuery UI Datepicker widget在表格中的日期很受欢迎。

正如其他人提到的那样,你现在这样做(至少按照这里所示的方式)很容易出现SQL injectionXSSCSRF以及介于两者之间的一切。如果您想成为一名网络开发人员,我建议您了解这些攻击。

编辑:

jQuery UI Datepicker帮助的是选择日期并将其以有效的日期格式放在文本字段中。您可以指定小部件显示日期的格式,如下所示:

$( "#datepicker" ).datepicker( "option", "dateFormat", "dd-mm-yy" );

然后你可以确保MySQL接受你在insert命令中提交的日期格式,方法如上所示:

STR_TO_DATE('$birthday', '%d-%m-%Y')