我嘗試寫這樣一個存儲過程,但它不工作:不能創建存儲過程的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