Intereting Posts

Выполнить mysql «создать функцию» с помощью PHP

Я хочу запустить следующий оператор mysql create function из PHP:

 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:

проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с «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