Я хочу запустить следующий оператор 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