我正在从PHP中读取一个TEXT文件,并试图从中执行命令,例如创建一个DB及其具有的所有表和过程。我的代码创建表,但不创建文件中给定的存储过程。
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,那么将如何完成此任务?我尝试一起执行所有代码部分并逐行执行,但没有任何效果。 我正在尝试制作数据库安装程序脚本。
好吧,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常识和@RiggsFolly的帮助。