Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Mysql中插入日期和时间_Php_Mysql_Datetime_Date_Insert Id - Fatal编程技术网

Php 在Mysql中插入日期和时间

Php 在Mysql中插入日期和时间,php,mysql,datetime,date,insert-id,Php,Mysql,Datetime,Date,Insert Id,我正在尝试将日期和时间插入mysql的datetime字段。当用户选择日期和时间时,它将生成两个POST变量。我在网上搜索过,但仍然不知道怎么做 我的密码 //date value is 05/25/2010 //time value is 10:00 $date=$_POST['date']; $time=$_POST['time']; $datetime=$date.$time 如果我在mysql中插入$datetime,则日期显示为0000-00-00:00:00:00 如果有人能帮

我正在尝试将日期和时间插入mysql的datetime字段。当用户选择日期和时间时,它将生成两个POST变量。我在网上搜索过,但仍然不知道怎么做

我的密码

//date value is 05/25/2010
//time value is 10:00

$date=$_POST['date'];
$time=$_POST['time'];

$datetime=$date.$time
如果我在mysql中插入$datetime,则日期显示为0000-00-00:00:00:00


如果有人能帮我,我将不胜感激。谢谢。

我认为日期时间格式如下所示:

YYYY-MM-DD HH:MM:SS
因此,您必须将$datetime的格式设置为这样。在您的查询中,需要封装在质量标记中。

  • 您可以自己将字符串转换为
    YYYY-MM-DD HH:MM:SS
    格式
  • 或者使用MySQL中的
    str\u to\u date()
    函数

    在表中插入日期时间值(str_to_date($date,“%m/%d/%Y%h:%i”))


据我所知,默认情况下,Mysql日期时间应为“yyy-mm-dd hh:mm:ss”格式

可处理更多格式的替代解决方案:

$datetime = $_POST['date'] . ' ' . $_POST['time'];
$datetime = mysql_real_escape_string($datetime);
$datetime = strtotime($datetime);
$datetime = date('Y-m-d H:i:s',$datetime);
$query = "INSERT INTO table(timestamp) VALUES ('$datetime')";

日期必须具有显示给您的格式:
0000-00-00:00:00

所以,你必须转换它。关于这个转换,这里有上千个问题。
最短的路就像

list($m,$d,$y) = explode("/",$_POST['date']);
$date = mysql_real_escape_string("$y-$m-$d ".$_POST['time']);

我通过API在mysql db中添加了日期和时间,如下所示:

YYYY-MM-DD HH:MM:SS

调用API

http://localhost/SendOrder.php?odate=20120323&otime=164545

  • odate
    类型为日期
  • otime
    类型是以DB为单位的时间


  • 它将odate存储为2012-03-23,otime存储为16:45:45。

    +1回复!谢谢GSTo的回答!因为第一个代码段包含SQL注入漏洞。再给我一个-1-P:-)@nonilist-StackOverflow中的代码片段不应按原样剪切粘贴。我解决了眼前的问题。但就为了你,我添加了一个对mysql real escape string的调用