您好我对PDO有疑问,我有一个像这样的mysql程序:
foreach ($conn->query($sqlqb) as $row)
{ ?>
<option value=<?php echo $row[id];?>><?php echo $row['Name_Team_Position'];?></option>
<?php } ?>
然后我用PDO调用我的程序:
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
但是我收到了一个错误:
有人可以解释一下为什么吗? 谢谢你的帮助致命错误:未捕获PDOException:SQLSTATE [HY000]:
中的常规错误
答案 0 :(得分:0)
根据我们在评论中的对话,我认为您应该将SELECT
向下移动到END IF
行以下,这样无论是否满足IF
条件,它都会被执行。
您还必须向存储过程提供所需的任何参数。