我真的需要帮助,mysql很新。您需要编写一个事务来检查,如果您插入数据,密码长度是4个字符,那么事务回滚,否则该条目将插入到表中。为了实现,我们使用了程序
` CREATE PROCEDURE PROC (@id int (11), @log
varchar (45), @em
varchar (45),
@pass int (45),@st int (11));
AS
BEGIN
BEGIN
START TRANSACTION;
INSERT INTO user
(`id_User`,`login`,`email`,`password`,`status`)
VALUES(@id, @log, @em, @pass, @st);
COMMIT
END
BEGIN
IF (length(@pass) < 4)
BEGIN
ROLLBACK
END
END
END`
答案 0 :(得分:0)
对于您想要做的事情,您根本不需要交易。您发布的代码在回滚之前已经提交,因此即使密码少于4个字符,仍然会发生插入,并且不会有任何事务要回滚。除此之外,您正在以错误的方式使用变量。但是,如果您通过不仅仅向数据库添加任何条目来验证用户输入,那么这是不好的做法。您应确保无法从表单提交少于4个字符的密码。
看看下面的内容:
CREATE DEFINER=`root`@`localhost` PROCEDURE `proc`(
v_id int (11),
v_log varchar (45),
v_em varchar (45),
v_pass int (45),
V_st int (11)
)
BEGIN
IF(LENGTH(v_pass) >= 4) THEN
INSERT INTO user (`id_User`,`login`,`email`,`password`,`status`)
VALUES(v_id,v_log, v_em, v_pass, V_st);
END IF;
END
希望这有帮助。