php实现string类型转换成datetime类型并插入mysql

1.datetime的插入数据格式问题

mmp一个很简单的问题却困扰了我一个下午,看了很多教程但是一直调不出来

原来是因为我对mysql中的datetime类型理解错误了!!!

举个栗子,

我一直错误理解为INSERT INTO  rsys_db.t_schedule values ('1','2019-06-09 00:00:00');

语句INSERT INTO  rsys_db.t_schedule values ('1','20190609000000');可以执行成功

实现了插入数据库,其中第二个数据是datetime类型的。也就是说,datetime类型插入的数据之间没有冒号或者分隔符!当插入的数据含有这些东东时是无法插入的!!!

插入后,数据库中显示,是数据库自己对数据处理之后加上的分隔符

 

2.php语言分割、拼接变量(字符串)

1.分割 $x=explode("参数1",参数2);

//第一个参数为分割的字符,第二个参数为待分割的字符串,结果保存到数组中

比如:$arr_date=explode(",",$date);//以逗号作为分隔符,分割$date变量并保存到数组中

举个栗子:

$val=06/09/2019;

$arr_sdate=explode("/",$val);

$month=$arr_sdate[0];

$day=$arr_sdate[1];

$year=$arr_sdate[2];

=>执行结果为:$month=06;$day=09;$year=2019;

 

2.拼接 $var=$var0.$var1."xxx"

//以英文句号为拼接符即可成功拼接

比如:$arr_time[0]=08;$arr_time[1]=00;

$time=$arr_time[0].$arr_time[1]."00";

=>执行结果为$time=080000

 

3.记录一下对string时间的处理并插入数据库(数据库连接部分省略)

//$val是形如06/10/2019的日期数据,$column是形如12:00的时间数据。

//很明显它们不符合datetime的类型要求,因此需要先进行字符切割,然后后再拼接起来,形成形如20190610120000的符合datetime类型的数据。

$arr_sdate=explode("/",$val);

$day=$arr_sdate[1];

$month=$arr_sdate[0];

$year=$arr_sdate[2];

$date0=$year.$month.$day;//拼接日期,形成形如20190610的日期数据

$arr_time=explode(":",$column);

$time=$arr_time[0].$arr_time[1]."00";//拼接时间,形成形如120000的时间数据

$date1=$date0.$time;//拼接日期+时间

$change="INSERT INTO `t_schedule`(`tid`,`datetime`) VALUES ('$uid','$date1')";

try

{

    $res=mysqli_query($link,$change);

}

catch(Exception $err)

{

    echo $err->getMessage();

    $dbh=null;

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章