Создание хранимых процедур с PDO в PHP

Я читаю файл TEXT из PHP и пытаюсь выполнить команды из него, например, создание базы данных и всех таблиц и процедур, которые она имеет. Мой код создает таблицы, но не создает хранимые процедуры, указанные в файле.

DELIMITER $$ DROP PROCEDURE IF EXISTS `add_hits`$$ CREATE DEFINER=`root`@`localhost` PROCEDURE `add_hits`( In id varchar(255)) BEGIN select hits into @hits from db_books where Book_ID = id; update db_books set hits=@hits+1 where Book_ID = id; END$$ 

PDO не создает SP, как можно будет выполнить эту задачу? Я попытался выполнить всю часть кода вместе и по строкам, но ничего не работает.
Я пытаюсь создать сценарий установки БД.

Solutions Collecting From Web of "Создание хранимых процедур с PDO в PHP"

Ну, PMA Помог мне ответить на этот собственный вопрос.
Чтобы преодолеть это, вам нужно удалить часть разделителя процедуры, чтобы ваши запросы стали такими:

  DROP PROCEDURE IF EXISTS `add_hits`; CREATE DEFINER=`root`@`localhost` PROCEDURE `add_hits`( In id varchar(255)) BEGIN declare hits_bk int; select hits into hits_bk from db_books where Book_ID = id; update db_books set hits=hits_bk+1 where Book_ID = id; END; 

Теперь запросы будут работать.
Благодаря @Your Common Sense и @RiggsFolly за помощь.

PHP позволяет выполнять только один запрос в обычном режиме, поэтому разделители не нужны

 $pdo = new PDO('mysql:host=localhost;dbname=test', $user, $pass); $pdo->exec('DROP PROCEDURE IF EXISTS `add_hits`'); $pdo->exec('CREATE DEFINER=`root`@`localhost` PROCEDURE `add_hits`( In id varchar(255)) BEGIN declare hits_bk int; select hits into hits_bk from db_books where Book_ID = id; update db_books set hits=hits_bk+1 where Book_ID = id; END'); 

Стремясь продолжать тему и отвечать на вопрос

 DELIMITER $$ DROP PROCEDURE IF EXISTS `add_hits`$$ CREATE DEFINER=`root`@`localhost` PROCEDURE `add_hits`( In id varchar(255)) BEGIN select hits into @hits from db_books where Book_ID = id; update db_books set hits=@hits+1 where Book_ID = id; END$$ 

Первое появление $$ приведет к прекращению DDL, поэтому

 DROP PROCEDURE IF EXISTS `add_hits`$$ 

Поэтому я думаю, что это должно быть

 DELIMITER $$ DROP PROCEDURE IF EXISTS `add_hits`; CREATE DEFINER=`root`@`localhost` PROCEDURE `add_hits`( In id varchar(255)) BEGIN select hits into @hits from db_books where Book_ID = id; update db_books set hits=@hits+1 where Book_ID = id; END $$