#1 jaykon
我用speedphp做了一个内部系统,最近发现一个问题,至今无法解决,也不知什么问题,有两个日期的字段,有时候插入数据库后的值就变成“000-00-00 :00:00:00”,但也不一定都是这样,一时一时,反正整个过程也没有报错,所以难以找到问题所在,因此我在程序上将数据传输过程做了下Log,希望大Jake帮我分析分析。
首先,我对接受到的所有数据记录,如下(logs是我自己写的记录方式:
logs("projectAdd.txt",json_encode($this->spArgs()));
得到记录如下:
{"c":"project","a":"project_add_do","proj_name":"62105c3159278d5b","prod_id":"1","wrap_id":"0","proj_class":"2","proj_url":"http:\/\/xyq.163.com\/2011\/cjs\/","proj_psdUrl":"\\\\192.168.22.64\\xyq\\","proj_ps":"68a65e7b897f6e3862105c3159278d5b6d3b52a84e139898","pnod_name1":"1","user_id_n1":"0","pnod_time_s1":"","pnod_time_e1":"","pnod_name2":"2","user_id_n2":"0","pnod_time_s2":"","pnod_time_e2":"","pnod_name3":"3","user_id_n3":"0","pnod_time_s3":"","pnod_time_e3":"","pnod_name4":"4","user_id_n4":"0","pnod_time_s4":"","pnod_time_e4":"","proj_start":"2011-09-21","proj_startTime":"01:00:00","proj_end":"2011-09-30","proj_endTime":"01:00:00","nodecount":"4","projState":"50","input":"4fdd5b5883497a3f"})
然后我取其中一些数据进行拼装成project_row
$project_row=array(
'proj_name'=>$this->spArgs('proj_name'),
'proj_mail'=>$this->spArgs('proj_mail'),
'wrap_id'=>$this->spArgs('wrap_id'),
'prod_id'=>$prod_id,
'proj_date'=>date("Y-m-d H:i:s"),
'proj_ps'=>$this->spArgs('proj_ps'),
'proj_url'=>$this->spArgs('proj_url'),
'proj_psdUrl'=>$this->spArgs('proj_psdUrl'),
'proj_class'=>$this->spArgs('proj_class'),
'proj_state'=>$proj_state,
'proj_start'=>$this->spArgs('proj_start')." ".$this->spArgs('proj_startTime'),
'proj_end'=>$this->spArgs('proj_end')." ".$this->spArgs('proj_endTime'),
'user_id'=>$user_id
);
logs("projectAdd.txt",json_encode($project_row)."\r\n");
得到数据如下:
$project->create($project_row);
{"proj_name":"62105c3159278d5b","proj_mail":null,"wrap_id":"0","prod_id":"1","proj_date":"2011-09-09 20:22:18","proj_ps":"68a65e7b897f6e3862105c3159278d5b6d3b52a84e139898","proj_url":"http:\/\/xyq.163.com\/2011\/cjs\/","proj_psdUrl":"\\\\192.168.22.64\\xyq\\","proj_class":"2","proj_state":"50","proj_start":"2011-09-21 01:00:00","proj_end":"2011-09-30 01:00:00","user_id":"18"}
记录最后执行的sql:
logs("projectAdd.txt",$project->dumpSql()."\r\n\r\n");
INSERT INTO project (proj_name,proj_mail,wrap_id,prod_id,proj_date,proj_ps,proj_url,proj_psdUrl,proj_class,proj_state,proj_start,proj_end,user_id) VALUES ('成就大赛',NULL,'0','1','2011-09-09 20:22:18','成就大赛活动专题','http://xyq.163.com/2011/cjs/','\\\\192.168.22.64\\xyq\\','2','50','2011-09-21 01:00:00','2011-09-30 01:00:00','18')连这段sql都没问题,但插入后 proj_start 和 proj_end 的值就变成“000-00-00 :00:00:00”, 我在phpmyadmin里直接执行这句mysql是没问题的。
$project->findSql(这句sql)会报错,应该是'\\\\192.168.22.64\\xyq\\'这个数据的转义问题。但为什么上面整个过程就不报错呢?而且还顺利返回了增加行后的id值。
我按照这个数据格式自己提交一次,却是正常的,我就无法理解了。
我现在确实找不到原因了....不知大家找不找到问题?
2011-09-09 21:11:57