我真的需要帮助,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`
1条答案
按热度按时间ego6inou1#
对于您想做的事情,您根本不需要事务。您发布的代码在回滚之前已经提交,所以即使密码少于4个字符,仍然会发生长插入,并且不会有任何事务要回滚。除此之外,您使用变量的方式是错误的。然而,如果这是您验证用户输入的方式,而不仅仅是向数据库添加任何条目,那么这是一种糟糕的做法。您应该确保不能从表单提交长度小于4个字符的密码。
请看下面:
希望这有帮助。