我想从 PHP 运行以下 mysql
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 ;
但是我得到这个 mysql 错误:
check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELIMITER'
我能做什么?我可以在没有 DELIMITER 关键字的情况下执行创建语句吗?
最佳答案
您很可能不需要 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;
}
让 PHP 担心定界
警告
我从 http://php.net/manual/en/mysqli.quickstart.stored-procedures.php 得到上面的代码
关于php - 用PHP执行mysql "create function"语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14569528/