2017-07-31 4 views
0

私のコードシグネチャコードからストアドプロシージャ(SP)を呼び出そうとしていますが、Mysql SPで定義したパラメータの1つがOUTPUTパラメータです。 SPを呼び出すときに私にいくつかの問題があります。誰もがOUTPUTパラメータを伴うPHPコードからSpを呼び出す正しい方法を知っていますか?以下のコードは次のとおりです。エラーコード1414は、ストアドプロシージャをouputパラメータで呼び出すと発生します。

のMySql:

DROP PROCEDURE IF EXISTS usp_check_user_exist; 
DELIMITER $$ 
CREATE PROCEDURE usp_check_user_exist 
(IN email VARCHAR(200), 
    OUT result BIT(1) ) 
BEGIN 
SET result = EXISTS(SELECT 1 FROM tbl_users WHERE user_email = email 
LIMIT 1); 
SELECT result; 
END 

CodeIgniterの/ PHP:

Database error:

答えて

0

あなたのストアドプロシージャでエラーが発生している:私が得た

public function check_email($email) { 

     $data = array(
        'email' => $email, 
        '@result' => @result 
       ); 


     $sp = "CALL usp_check_user_exist (?,?)"; 
     $result = $this->db->query($sp, $data); 

     if($result) { 
      return TRUE; 
     } else { 
      return FALSE; 
     } 

    } 

エラー。以下に記載されている正しい定義を確認してください。

DELIMITER $$ 

DROP PROCEDURE `usp_check_user_exist`$$ 

CREATE PROCEDURE `usp_check_user_exist`(IN email VARCHAR(200)) 
BEGIN 
    DECLARE result TINYINT DEFAULT 0; 
    SET result = EXISTS(SELECT 1 FROM tbl_users WHERE user_email = email 1); 
    SELECT result; 
END$$ 

DELIMITER ; 

PHPからの呼び出し時よりも現在のストアドプロシージャを使用する場合は、以下のようなステートメントを使用します。

call usp_check_user_exist('[email protected]',@out); 

動作しない場合は教えてください。

+0

Shyam Shingadiyaありがとうございます。あなたの解決策が最も役立ちました。 – melonQheadQsheep

関連する問題