php - 用PHP执行mysql "create function"语句

标签 php mysql function create-function

我想从 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/

相关文章:

php - Wamp,PHP MySQL - 连接错误

php - MySql 查询在本地主机中运行,但不在 Web 服务器中运行

function - 如何使用这个函数 Map.getValue( thisRef : Any? , property: KProperty<*>)

PHP mail() 函数服务器和本地主机不工作

mysql - 需要在 SQL 中做一个简单的查找/替换

python - Try-except 未知功能?

php - 值错误 : need more than 0 values to unpack error in Python

php - 'git pull' 命令可以从终端运行,但不能通过 git 存储库 Hook 使用 php shell_exec()

php - 按可用日期查询 woocommerce 预订

java - 如何从 prepareCall 方法中获取自定义 CallableStatement 对象