DELIMITER $$
drop procedure IF EXISTS `simpleproc`$$
CREATE PROCEDURE `simpleproc`(OUT param1 INT)
BEGIN
SELECT COUNT(*) INTO param1 FROM t;
END $$
DELIMITER ;
我正在尝试使用PHP导入上面的代码,但是我收到了这个错误:
执行查询时出错'':您的SQL语法中有错误;查看与您的MySQL服务器版本相对应的手册,以便在'DELIMITER $$ drop procedure'附近使用正确的语法如果在第1行创建
simpleproc
$$ CREATE PROCEDURE`simplepro'
答案 0 :(得分:0)
以上语法只能在MySQL
命令行客户端上执行
使用服务器端脚本语言也无法正常工作。
相反,您可以使用以下字符串构建query
并传递给mysqli->query
CREATE PROCEDURE simpleproc (OUT param1 INT )
BEGIN
SELECT COUNT(*) INTO param1 FROM t;
END;
注意强> 的:
如果只有一个语句要在存储过程中处理和执行,
你甚至不需要begin
- end
块。
这是正确的:
CREATE PROCEDURE simpleproc (OUT param1 INT )
SELECT COUNT(*) INTO param1 FROM t;
答案 1 :(得分:0)
您的过程语法有错误,请使用以下
DELIMITER $$;
DROP PROCEDURE IF EXISTS `simpleproc`$$
CREATE PROCEDURE `simpleproc` (OUT param1 INT)
BEGIN
SELECT COUNT(*) INTO param1 FROM t;
END$$
DELIMITER ;$$
这将解决您的问题
答案 2 :(得分:0)
DELIMITER $$
DROP PROCEDURE IF EXISTS `simpleproc`$$
CREATE PROCEDURE `simpleproc`(OUT param1 INT)
READS SQL DATA
BEGIN
SELECT COUNT(*) INTO param1 FROM t;
END $$
DELIMITER ;$$