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;
}