加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 错误1318:PROCEDURE ComicHub.sp_createUser的参数数

发布时间:2020-12-20 13:11:50 所属栏目:Python 来源:网络整理
导读:运行此代码时我保留错误1318,我应该有4个参数:用户名,电子邮件,密码和位置.它正在上升4,但认为它只需要3个参数.数据库和 Python代码如下. Python: @app.route('/userSignUp',methods = ['POST'])def userSignUp(): try: #read values from signup form _us
运行此代码时我保留错误1318,我应该有4个参数:用户名,电子邮件,密码和位置.它正在上升4,但认为它只需要3个参数.数据库和 Python代码如下.

Python:

@app.route('/userSignUp',methods = ['POST'])
def userSignUp():
    try:
        #read values from signup form
        _username = request.form['username']
        _email = request.form['email']
        _password = request.form['password']
        _location = request.form['location']

        #validate recieved values
        if _username and _email and _password and _location:

            cur = mysql.connection.cursor()
            _hashed_password = generate_password_hash(_password)

            cur.callproc('sp_createUser',(_username,_email,_hashed_password,_location))

            data = cur.fetchall()
            cur.close()
            if len(data) is 0:
                mysql.connection.commit()
                return json.dumps({'success':'User created successfully!'})
            else:
                return json.dumps({'error':str(data[0])})
        else:
            return json.dumps({'html':'<span>Enter the required fields</span>'})

    except Exception as e:
        return json.dumps({'error':str(e)})

SQL:

# Create Database for ComicHub
CREATE DATABASE ComicHub;

# Create Table 'users' for ComicHub
CREATE TABLE `ComicHub`.`tbl_user` (
    `user_id` BIGINT NULL AUTO_INCREMENT,`user_username` VARCHAR(45) NULL,`user_email` VARCHAR(45) NULL,`user_password` VARCHAR(45) NULL,`user_location` VARCHAR(66) NULL,PRIMARY KEY (`user_id`)
);

# PROCEDURE for creating users from passed in data
USE `ComicHub`;
DELIMITER $$
CREATE PROCEDURE `sp_createUser` (
    IN p_username VARCHAR(20),IN p_email VARCHAR(20),IN p_password VARCHAR(20),IN P_location VARCHAR(20)
)
BEGIN
#check if user already exists
    IF (select exists (select 1 from tbl_user where user_username = p_username) ) THEN

        select 'Username Already Exists!';

    ELSE

        insert into tbl_user
        (
            user_username,user_email,user_password,user_location
        )
        values 
        (
            p_username,p_email,p_password,p_location
        );

    END IF;
END$$
DELIMITER ;

解决方法

没关系,现在修复,我意识到我没有更新MySQL Workbench中的数据库.愚蠢我知道,但这是漫长的一天!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读