我嘗試使用預(yù)存程序 (SP) 的建立語(yǔ)句從 PHP 查詢 MySQL 都失敗了。這不可能嗎?
如果確實(shí)可以的話,請(qǐng)舉個(gè)例子。
除了特權(quán)之外,很可能導(dǎo)致您出現(xiàn)問(wèn)題的是,實(shí)際上 mysql_query($query) 每次呼叫只能執(zhí)行一個(gè)命令!
所以你要做的就是將指令分成幾個(gè) mysql_query($query) -呼叫。
我的意思是這樣的:
$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);
MySQL手冊(cè)對(duì)如何建立有清晰的概述儲(chǔ)存程序(13.1.15。CREATE PROCEDURE
和CREATE FUNCTION
語(yǔ)法) 。
下一個(gè)問(wèn)題是:您用來(lái)存取 MySQL 資料庫(kù)的帳戶是否具有實(shí)際建立過(guò)程的適當(dāng)權(quán)限?
有關(guān)此問(wèn)題的詳細(xì)資訊可以在這裡找到: 19.2.2。儲(chǔ)存例程和 MySQL 權(quán)限