5
A
回答
1
MySQL手册有关于how to create stored procedures (13.1.15. CREATE PROCEDURE
and CREATE FUNCTION
Syntax)的清晰概述。
接下来的问题是:您用来访问MySQL数据库的帐户是否拥有实际创建过程的权限?这个问题
详细信息可以在这里找到:19.2.2. Stored Routines and MySQL Privileges
0
您是否有足够的权限,您从PHP连接的帐户?从the manual
在MySQL 5.0.3中,执行 CREATE PROCEDURE或CREATE FUNCTION 声明,就必须有 CREATE ROUTINE权限
又见Stored Routines and MySQL Privileges的说明书中无。
2
1
除了特权,什么大抵相当可能会导致您的问题是,实际的mysql_query($查询)只能每次调用工作一个命令!
所以你要做的就是把命令分成sevaral mysql_query($ query)-calls。
我的意思是这样的:
$query = "DROP FUNCTION IF EXISTS fnElfProef (accountNr INT)";
mysql_query($query);
$query = "CREATE FUNCTION fnElfProef (accountNr INT)
RETURNS BOOLEAN
BEGIN
DECLARE i, totaal INT DEFAULT 0;
WHILE i < 9 DO
SET i = i+1;
SET totaal = totaal+(i*(accountNr%10));
SET accountNr = FLOOR(accountNr/10);
END WHILE;
RETURN (totaal%11) = 0;
END";
mysql_query($query);
$query = "SELECT * FROM mytable";
mysql_query($query);
0
你不能在PHP中使用的分隔符的语句。因此,
1) remove the DELIMITER statements
2)and change all your delimiters to ;
很是烦人,因为现在你必须有一个与DELIMITERS在MySQL命令行或MySQL的工具,如SQLyog的或MySQL Workbench开发和测试版本,并没有DELIMITERS版本通过你的PHP中使用程序。
如果有人知道一个更好的办法,我想听听它 - (而不是通过调用OS shell脚本 - 有太多的遗留问题)
而你需要SUPER权限。
相关问题
- 1. 如何从PHP创建MySQL存储过程?
- 2. 如何从存储过程中创建存储过程
- 3. 使用MySQL创建MySQL存储过程
- 4. MySQL中创建新的存储过程
- 5. 创建存储过程在MySQL
- 6. MySQL存储过程无法创建
- 7. MySQL。未能创建存储过程
- 8. MySQL存储过程创建错误
- 9. 不能创建MySQL存储过程
- 10. 从PHP执行java MySQL存储过程
- 11. 如何创建存储过程laravel
- 12. 如何创建Sybase存储过程
- 13. 如何创建存储过程
- 14. 如何用hibernate创建存储过程?
- 15. 如何创建存储过程?
- 16. 如何创建存储过程?
- 17. 从x ++创建存储过程
- 18. StrongLoop从存储过程创建模型
- 19. 从SQL存储过程创建/更改
- 20. 从NopCommerce插件创建存储过程
- 21. 如何在存储过程中创建mysql嵌套循环
- 22. 如何在mysql工作台中创建存储过程?
- 23. 如何在mySQL中创建存储过程
- 24. 如何创建插入存储过程mysql
- 25. 如何创建和调用MySQL存储过程?
- 26. 创建存储过程 - SQL
- 27. Magento:创建存储过程
- 28. MYSQL存储过程从日期创建动态表
- 29. mysql服务器:存储过程 - 我什么时候创建存储过程?
- 30. 如何创建存储过程来创建数据库
http://forums.mysql.com/read.php?98161275,161275 – 2013-04-23 21:44:26