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. 如何從存儲過程創建表?
- 4. 使用MySQL創建MySQL存儲過程
- 5. MYSQL:如何從存儲過程創建觸發器
- 6. 如何在MySQL創建存儲過程對存儲過程的正確方法
- 7. MySQL中創建新的存儲過程
- 8. 創建存儲過程在MySQL
- 9. MySQL存儲過程沒有被創建
- 10. 錯誤創建存儲過程MySQL
- 11. 創建mysql存儲過程錯誤
- 12. MySQL。未能創建存儲過程
- 13. 不能創建MySQL存儲過程
- 14. MySQL存儲過程無法創建
- 15. 在MySQL Workbench中創建存儲過程
- 16. MySQL存儲過程創建錯誤
- 17. 創建存儲過程在MySQL每批
- 18. 如何通過C#代碼在MySql中創建存儲過程
- 19. 如何僅使用存儲過程創建MySQL應用程序?
- 20. 存儲過程從動態sql創建存儲過程
- 21. 從PHP調用MySql存儲過程(PDO)
- 22. 從PHP執行java MySQL存儲過程
- 23. 如何使用從MYSQL存儲過程
- 24. 如何創建存儲過程laravel
- 25. 如何創建此存儲過程?
- 26. 如何創建一個存儲過程
- 27. 如何創建存儲過程
- 28. 如何用hibernate創建存儲過程?
- 29. 如何創建存儲過程?
- 30. 如何創建Sybase存儲過程
http://forums.mysql.com/read.php?98161275,161275 – 2013-04-23 21:44:26