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 展开
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 展开
展开全部
你确定把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类里面有做处理。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |