【问题标题】:character input should be > = 8 character字符输入应 > = 8 个字符
【发布时间】:2015-07-06 21:20:00
【问题描述】:

我有一个 mysql 存储过程需要验证密码输入,该密码输入将输入字母数字并且不接受少于 8 个字符。但是,当我测试它时,它甚至可以接受 1 个字符。我试图改进验证。希望得到一些见解。

提前致谢:

这是脚本的一部分:

  PREPARE STMT1 FROM " SELECT COUNT(column1) INTO @1 FROM table where column2 = ? ";
SET @a = x;
EXECUTE STMT1 USING @a;
DEALLOCATE PREPARE STMT1;
START TRANSACTION;
IF @1 = 6 THEN
    PREPARE STMT1 FROM "DELETE FROM table WHERE column2 = ? ORDER BY seqid LIMIT 1";
    SET @a = x;
    EXECUTE STMT1 USING @a;
    DEALLOCATE PREPARE STMT1;
END IF;
PREPARE STMT FROM " UPDATE table2 SET column3 = sha1(BINARY ?),column4 = now() WHERE column2 = ? ";
SET @a = newpassword;
SET @b = x;
EXECUTE STMT USING @a,@b;
DEALLOCATE PREPARE STMT;
PREPARE STMT1 FROM " INSERT INTO table2 (column1,column2,column3) VALUES (?,sha1(BINARY ?),now())";
SET @a = x;
SET @b = newpassword;
EXECUTE STMT1 USING @a,@b;

【问题讨论】:

  • 你试过什么?向我们展示您已经编写的代码以及您研究过的方法
  • 对不起,我已经编辑了我的帖子。

标签: mysql stored-procedures


【解决方案1】:

您似乎正在尝试使用COUNT(col) 来确定密码的长度。

你想要CHARACTER_LENGTH(col)https://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_char-length

【讨论】:

  • 谢谢,我已将其更改为 CHARACTER_LENGTH(col) 但脚本的那部分仍然缺少某些内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-30
  • 1970-01-01
  • 2017-09-12
  • 2021-01-25
  • 1970-01-01
相关资源
最近更新 更多