我有一个像这样的数据库表......
CREATE TABLE IF NOT EXISTS `example` (
`id` varchar(78) COLLATE latin1_general_ci NOT NULL,
`username` varchar(78) COLLATE latin1_general_ci NOT NULL,
`password` varchar(78) COLLATE latin1_general_ci NOT NULL,
`reg_date` date NOT NULL,
`reg_time` time NOT NULL,
`permission` varchar(78) COLLATE latin1_general_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
现在我正在从PHP执行查询...
INSERT INTO `example` (`id`, `username`, `password`, `reg_date`, `reg_time`, `permission`) VALUES ('j652hsL', 'example_user', 'secret', '', '', '');
此查询在我的localhost中运行完美,当然有警告但数据插入没有问题...是reg_date
,reg_time
& permissions
字段持有0000-00-00
,00:00:00
&分别为*Blank*
...但插入没有问题...现在同一个插入查询没有在某个Web服务器上运行...
我有一个Web服务器,我在那里测试它运行时没有错误但当我转移到不同的Web服务器时它没有运行那里...我认为它是某种服务器设置问题...但是可能的阻止它插入数据?
先谢谢大家。
答案 0 :(得分:1)
检查本地服务器和Web服务器是否使用不同的SQL MODE
。根据模式的严格程度,它会以不同的方式处理零日期,默认值和其他事项。
要使当前设置在两台服务器上运行show variables like 'sql_mode'
。