用PHP执行mysql"create function"语句

Bor*_*zin 6 php mysql function create-function

我想mysql从PHP 运行以下create function语句:

DELIMITER $$
CREATE FUNCTION `myFunc`(`instring` varchar(4000)) RETURNS int(11)
    NO SQL
    DETERMINISTIC
    SQL SECURITY INVOKER
BEGIN
    DECLARE position int;
    ....here comes function logic
    RETURN position;
END$$
DELIMITER ;
Run Code Online (Sandbox Code Playgroud)

但我得到这个mysql错误:

查看与您的MySQL服务器版本对应的手册,以便在'DELIMITER'附近使用正确的语法

我能做什么?我可以在没有DELIMITER关键字的情况下执行create语句吗?

Rol*_*DBA 9

您很可能不需要该DELIMTER命令.这属于以MySQL为中心的客户端程序.

请尝试使用普通的旧分号:

if (!$mysqli->query("DROP PROCEDURE IF EXISTS p") ||
    !$mysqli->query("CREATE PROCEDURE p(IN id_val INT) BEGIN INSERT INTO test(id) VALUES(id_val); END;")) {
    echo "Stored procedure creation failed: (" . $mysqli->errno . ") " . $mysqli->error;
}
Run Code Online (Sandbox Code Playgroud)

让PHP担心分界

警告

我从http://php.net/manual/en/mysqli.quickstart.stored-procedures.php获得了上述代码

  • ......"让PHP担心划界"< - 救了我的一天:D (3认同)