2
该特定查询应该将用户输入到数据库中。查询的意外行为
该查询并不总是插入名字和姓氏字段的值以及其他字段。名字和姓氏在一些插入中是空的,而其他的则按预期工作。
INSERT INTO `users` (mobile, passwordHash, firstname, lastname, ent_id, email) VALUES ('913800341127', '678a1491514b7f1006d605e9161946b1', 'nat', 'sam', '108', NULL) ON DUPLICATE KEY UPDATE `firstname` = VALUES(firstname),`lastname` = VALUES(lastname)
相关信息:
CREATE TABLE `users` ( `id` int(11) NOT NULL auto_increment, `tag` varchar(5) NOT NULL default 'ind', `username` varchar(50) default NULL, `firstname` varchar(100) default NULL, `lastname` varchar(100) default NULL, `passwordhash` varchar(255) NOT NULL, `secretq` varchar(255) default NULL, `secreta` varchar(100) default NULL, `email` varchar(50) default NULL, `mobile` varchar(13) default NULL, `last_login` datetime default NULL, `ent_id` bigint(20) NOT NULL default '1', `is_inactive` tinyint(1) NOT NULL COMMENT 'Whether the user is active or not', PRIMARY KEY (`id`), UNIQUE KEY `mobile_2` (`mobile`,`ent_id`), UNIQUE KEY `email_2` (`email`,`ent_id`), KEY `username` (`username`), KEY `ent_id` (`ent_id`,`tag`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1
我的选择将是这种情况的发生,当用户名包含非ASCII字符,这是进入latin1以外的其他编码(如UTF-8)并完全中断字符串。您需要添加更多关于数据来源的信息。 – 2011-04-06 13:19:01
你能告诉我们关于它失败的情况吗?相同的数据总是在同一个地方失败吗?它在高负荷下失效吗?日志中的任何错误或警告? – 2011-04-06 13:20:43
你能以一种可以帮助别人的方式回答你自己的问题吗?如果你这样做,你可以选择你的正确答案。这可能看起来很奇怪,但在这种情况下,最好删除它。 – Will 2011-04-06 14:43:15