PHP向MySQL插入数据时,日期时间无法被MySQL接收,如果在MySQL中直接执行SQL语句着可以顺利完成。

表结构:CREATETABLE`test`(`id`int(11)NOTNULLAUTO_INCREMENT,`int_val`int(11)DEFAULTNULL,`d... 表结构:
CREATE TABLE `test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`int_val` int(11) DEFAULT NULL,
`date_val` date DEFAULT NULL,
`bit_val` bit(1) DEFAULT NULL,
`varchar_val` varchar(255) DEFAULT NULL,
`time_val` time DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=126 DEFAULT CHARSET=latin1;

SQL语句:insert into test(`bit_val`,`date_val`,`time_val`) values(1,'2012-08-09 22:23:36','2012-08-09 22:23:36')
以上SQL用PHP的PDO_MYSQL执行,记录正常插入,但是time_val字段为NULL,同样这条SQL在MYSQL命令行中执行,运行结果正常time_val的值为'22:23:36'

有人知道这是为什么吗?如何让PHP的执行结果和MYSQL一致?
(请不要让我修改time_val的值,我也知道改成纯时间格式就没有问题了)
补充说明:PHP版本5.4.5,MYSQL版本5.5.13
展开
 我来答
一喉封剑
2012-08-09 · 超过59用户采纳过TA的回答
知道小有建树答主
回答量:246
采纳率:0%
帮助的人:165万
展开全部
你确定把php的语句打印出来后 跟你发的那句一抹一样码?
追问
确定,上面的语句就是PHP打印出来复制的,我测试了
insert into test(`bit_val`,`date_val`,`time_val`) values(1,'2012-08-09 22:23:36',‘22:23:36')
一样不行。感觉PHP就没法写MySQL的Time类型字段
追答
既然命令行都能插入,php区执行应该也可以的,是不是你的sql传进去后,PDO_MYSQL类里面又做了什么处理?可以写一段最原始的php连数据库的方法插那个sql试试,不要用封装好的pdo类,如果能插入,就说明pdo类里面有做处理。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式