Как вставить / создать хранимые процедуры в mySQL из PHP?

У меня есть несколько хранимых процедур, созданных с помощью MySQL Workbench. Они отлично работают при использовании MySQL workbench, чтобы поместить их в мою тестовую БД.

Сейчас я готовлю сценарии создания БД к развертыванию, и это единственная проблема, с которой у меня возникли проблемы. Когда я использую командную строку / оболочку mysql, сценарий отлично работает. Только когда я использую интерфейс PHP mysql (i) для выполнения скрипта - он не работает. Без комментариев.

Я использую сценарии создания процедур, которые генерирует для меня рабочая среда MySQL; то есть, он имеет следующий шаблон:

SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';

в начале сценария, затем повторение для каждой процедуры:

DELIMITER $$
USE `dbname`$$
CREATE PROCEDURE `procname`(IN inputparameters)
BEGIN

... процедура идет сюда

;
END$$
DELIMITER ;

Этот сценарий отлично работает, если запускается из MySQL Workbench. Он также отлично работает, если я попробую то же самое из командной строки mysql. Но он ничего не может сделать, когда я выполняю его через интерфейс PHP mysqli (выполняя его с помощью mysqli_multi_query, который отлично работает для других сценариев, создающих и заполняющих БД). Все, что я получаю, это «ложь», и этим все сказано. код ошибки равен 0, сообщения об ошибке нет.

Это большой WTF для меня, и я надеюсь, что вы сможете указать мне правильное направление - как я могу исправить это и установить процедуры из PHP?

PS: root Предоставляется и проверяется доступ / admin (в конце концов, я только что создал БД с тем же самым подключением, создал пользователей, вставил таблицы и так далее).

5
задан RichardTheKiwi 28 January 2011 в 03:35
поделиться