[英]Why won't my PHP return a MySQL stored procedure?
好吧,我有我編寫的這個MySQL存儲過程,如果我在phpMyAdmin中運行以下命令,一切都會正確返回:
SELECT game_name,urlfriendly(game_name) AS game_name2 FROM games
但是,如果我嘗試運行以下代碼,則會出現錯誤“警告:/filepath.php中為第#行的foreach()提供了無效的參數”
foreach ($this->database->query("SELECT game_name,urlfriendly(game_name) AS game_name2 FROM games") as $games)
{
echo $games["game_name"] . " " . $games["game_name2"];
}
但是,如果運行此命令,一切正常:
foreach ($this->database->query("SELECT game_name FROM games") as $games)
{
echo $games["game_name"];
}
意味着存儲的過程不會返回到PHP。
有任何想法嗎?
編輯這是存儲的過程(但我懷疑這是問題,因為phpMyAdmin正在從中拉回值)
分隔符//
DROP FUNCTION urlfriendly
//
CREATE FUNCTION urlfriendly (unsafe TEXT) RETURNS TEXT
DETERMINISTIC
BEGIN
DECLARE safe TEXT;
SET safe = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(unsafe),' ','-'),'&','and'),'`',''),'~',''),'!',''),'@',''),'#',''),'$',''),'%',''),'^',''),'*',''),'(',''),')',''),'_',''),'+',''),'=',''),'[',''),'{',''),']',''),'}',''),'|',''),'\\',''),"'",""),'"',''),':',''),';',''),'<',''),',',''),'>',''),'.',''),'/',''),'?','');
RETURN safe;
END
//
EDIT2這是從MySQL返回的錯誤
execute command denied to user 'username'@'localhost' for routine 'databasename.urlfriendly' )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.