【发布时间】:2012-06-04 06:30:01
【问题描述】:
我有时会有空值或空值的数组。在 MySql 中,它们被设置为不可为空,但它们分配了默认值。那么,为什么 MySql 会给我一个错误,例如Column user_type can not be null。 (我没有在严格模式下运行)。
我意识到在准备查询时可以使用关键字 DEFAULT 代替某些值,但我真的不想这样做。我希望能够逐字编写我的 SQL 语句,而不是将它们与 foreach 循环等放在一起。例如,我想使用"INSERT INTO users (user_type, first_name, last_name, password) VALUES (:user_type, :first_name, :last_name, :password)";
据我回忆,在我不再使用 ?命名参数的查询标记...
谢谢...
【问题讨论】:
-
我不认为可以这样做:绑定时发送一个值 is(因为它根本就出现了!),即使
NULL。因此 MySQL 不能应用默认值——因为指定了一个值 。有触发器,但是“ick!”。一个“解决方案”是拥有一个基于 Map 的最小查询生成器。 (当然,仍然使用占位符。) -
你说的是php吗?因为您提到了“数组”,所以可能值得一提的是哪种语言的数组
-
(我不认为它是仅使用具有相同插入结构的
?标记;可能想要验证它,如果它确实有效,请参阅用什么魔法。) -
@SiGanteng,是的,PHP。见问题标题。