簡體   English   中英

使用PDO調用mysql過程得到一般錯誤

[英]call mysql procedure using PDO got general error

您好我有關於PDO的問題,我有這樣的mysql過程:

CREATE PROCEDURE `user_regis`(IN `name` VARCHAR(50), IN `hp` VARCHAR(12), IN `email` VARCHAR(30), IN `username` VARCHAR(20), IN `password  VARCHAR(20) )

    BEGIN

        IF (SELECT NOT EXISTS (SELECT * FROM USER WHERE USER_USERNAME = username AND USER_EMAIL = email)) THEN

            INSERT INTO USER
              (USER_ID, USER_NAME, USER_HP, USER_EMAIL, USER_USERNAME, USER_PASSWORD) 
            VALUES 
              (null,name,hp,email,username,password) ;

            INSERT INTO `VOUCHER`(`VOUCHER_CODE`, `USER_USERNAME`, `VOUCER_STATUS`, `VOUCHER_EXPIRY`) 
            VALUES((SELECT CONCAT('TRVL',ROUND(RAND()*1000000))),username,1,(SELECT NOW() + INTERVAL 48 HOUR) ) ;

            SELECT * FROM USER WHERE USER_USERNAME = username ;

        END IF;

    END

然后我使用PDO調用我的程序:

$regis = $this->pdo->query('call user_regis(a,a,a,a,a)');
if($regis->fetchColumn > 0){ echo "hai" ; }

但我有一個錯誤:

致命錯誤:未捕獲的PDOException:SQLSTATE [HY000]:中的常規錯誤

有人可以解釋我為什么嗎? 謝謝你的幫助

根據我們在評論中的討論,我認為您應該將SELECT向下移到END IF行下方,以便無論是否滿足IF條件都可以執行它。

您還必須向存儲過程提供任何必需的參數。

暫無
暫無

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

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