2015-07-06 5 views
-3

У меня есть хранимые процедуры mysql, которые должны проверять ввод пароля, который будет вводить буквенно-цифровой и не будет принимать менее 8 символов. однако, когда я тестирую его, он может принимать даже 1 символ. im пытается улучшить валидацию. надеясь на некоторое понимание.ввод символов должен быть> = 8 символов

Спасибо заранее:

Вот некоторая часть сценария:

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; 
+2

Что вы пытались? Покажите нам код, который вы уже написали, и какие методы вы рассмотрели. – codedude

+0

Извините, я редактировал свой пост. – axel

ответ

0

Похоже, вы пытаетесь использовать COUNT(col), чтобы определить длину пароля.

Вы хотите, чтобы CHARACTER_LENGTH(col) вместо этого. https://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_char-length

+0

спасибо, я изменил его на CHARACTER_LENGTH (col), но все же что-то не хватает в этой части скрипта. – axel

Смежные вопросы