我尝试写这样一个存储过程,但它不工作:不能创建存储过程的mysql也许如果别的语法
DROP PROCEDURE IF EXISTS `my_test`;
CREATE PROCEDURE `my_test`(
IN my_in_var VARCHAR(255),
OUT my_out_var VARCHAR(255)
)
BEGIN
IF(in_var == 'my_in_value') THEN
SET my_out_var = 'my_out_value1';
ELSE
SET my_out_var = 'my_out_value2';
END IF;
END
我尝试从PHP和PDO
$conn = new PDO("mysql:host=".$mysql_host.";dbname=".$mysql_bd, $mysql_user, $mysql_password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$conn->exec($sql);
执行
没有错误,但我不能
SHOW CREATE PROCEDURE my_test
看到它的MySQL服务器,所以我试图复制粘贴在phpMyAdmin的SQL窗口和我此语法错误:
1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '== 'my_in_value') THEN SET my_out_var = 'my_out_value1'' at line 6
什么是正确的语法?为什么PDO不显示错误?
任何帮助是值得欢迎的 - 感谢
丢失包裹'DELIMITER'? – Drew
您是否尝试使用'='而不是'=='? – currarpickt
是啊,如果你修复它,节省了 – Drew