CREATETABLE t_cust_acct (
o_id INT NOT NULL AUTO_INCREMENT,
o_user VARCHAR(12) NOT NULL,
o_pass VARCHAR(12) NOT NULL,
o_mail VARCHAR(255) NOT NULL,
c_0 INT(2) NOT NULL,
c_1 INT(1) NOT NULL,
c_2 INT(1) NOT NULL,
c_3 INT(1) NOT NULL,
c_4 INT(1) NOT NULL,
PRIMARY KEY ( o_id ),
UNIQUE (
o_user
),
CONSTRAINT c_validate CHECK (
c_0 = ( c_1 + c_2 + c_3 + c_4 )
))
例如,所有以c_开头的字段名称都是隐蔽的,并且在HTML表单上没有代表性字段;表单反馈页面将在PHP服务器上生成-9和9之间的四个随机数,然后设置字段c_1 c_2 c_3和c_4; c_0将是这四个数字的总和,因此插入不会因c_validate约束而失败。
这会按预期工作吗?
答案 0 :(得分:1)
除了在MySQL中没有执行CHECK约束这一事实之外,为什么不进行参数化?并且做得恰到好处......