2015-04-02 61 views
0

我想添加到我的SQL数据库使用存储过程,此过程应添加unique_id,名称,密码和电子邮件地址。PHP/MySQL存储过程问题

我使用下面的代码:

//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"; 

我希望它取四场,但我得到以下错误,当我尝试登录up

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

任何人都知道是什么造成这种情况?说它只需要三个参数,但我指定了四个参数?

回答

0

设法

我曾与3个参数之前存储在同一个程序,当我添加了第四个参数,它永远不会更新排序,所以我第一次下降过程使用:

drop procedure users.userInsert; 

和再次运行程序,一切正常然后