执行MySQL' CREATE PROCEDURE'来自PHP的命令

时间:2017-09-24 18:09:46

标签: php mysql stored-procedures

我想从PHP执行'CREATE PROCEDURE'命令。有没有办法在PHP连接上更改MySQL DELIMITER?当然,我知道如何在控制台会话中执行此操作,但我想从PHP中执行此操作。我希望能够动态创建存储过程,为此我认为我需要能够将DELIMITER from ;重置为其他东西,以便MySQL理解我的'CREATE PROCEDURE'定义中的分号是不是整个陈述的结束。

我以为我可能会被告知这是一个疯狂的事情(我仍然可以)但我找到了这个

https://dev.mysql.com/doc/connector-net/en/connector-net-tutorials-mysqlscript-delimiter.html

这似乎正是我正在寻找的,除了它的.NET而不是PHP。

这是我正在生成并希望动态执行的代码示例

DELIMITER $$
CREATE PROCEDURE `usp_update_1_8` (IN p_intClientID int(11) , IN p_8 varchar(30) ,OUT p_row_count INT )
BEGIN
UPDATE tblDriver_Audit SET q_8 = IFNULL(p_8, q_8), dtmLastChanged = NOW() WHERE intClientID = p_intClientID; 
SELECT ROW_COUNT() INTO p_row_count; END; $$
DELIMITER ;

如果我把它全部放在一行上,我告诉它语法错误。如果我试着把它放到准备好的陈述中,我会得到

Error Code: 1295. This command is not supported in the prepared statement protocol yet 我也尝试过使用多查询,但又出现了语法错误,我试图执行三个语句"分开(即DELIMITER-then-CREATE PROCEDURE-then-DELIMITER)。

有办法做到这一点吗?

0 个答案:

没有答案