簡體   English   中英

PHP / MySQL存儲過程問題

[英]PHP/MySQL Stored procedure issue

我正在嘗試使用存儲過程將其添加到我的SQL數據庫中,該過程應添加一個unique_id,名稱,密碼和電子郵件地址。

我正在使用以下代碼:

    //Enter the valid data into the database
    $username = filter_input(INPUT_POST, 'Username', FILTER_SANITIZE_STRING);
    $encrypted_password = filter_input(INPUT_POST, 'Password', FILTER_SANITIZE_STRING);
    $email = filter_input(INPUT_POST, 'Email', FILTER_SANITIZE_STRING);
    $uuid = uniqid('', true);

    $insertUser = mysqli_query($conn, "Call userInsert('$uuid', '$username','$encrypted_password', '$email')"); 

        if(! $insertUser )
        {
            die('Error: ' . $conn->error);
        }

        else
        {
            echo "Success";
        }

這是我的存儲過程:

$insertIntoUsers = "
CREATE PROCEDURE userInsert(unique_id VARCHAR(23), name VARCHAR(50), encrypted_password VARCHAR(80), email VARCHAR(50))
BEGIN
INSERT INTO users(unique_id, name, encrypted_password,email) values(unique_id, name,encrypted_password,email);
END";

我希望它占用四個字段,但是嘗試注冊時出現以下錯誤

Error: Incorrect number of arguments for PROCEDURE users.userInsert; expected 3, got 4

有人知道是什么原因造成的嗎? 說它只需要三個參數,但是我指定了四個?

設法排序

我以前用3個參數存儲了相同的過程,當我添加第四個參數時,它從未更新,因此我首先使用以下命令刪除了該過程:

drop procedure users.userInsert;

然后再次運行該程序,然后一切正常

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM