[英]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.