2009-01-25 76 views
1

嗯,我认为我写的,如果我运行phpMyAdmin的东西下面的正确返回这个MySQL存储过程:提供的参数无效:为什么我的PHP不会返回MySQL存储过程?

SELECT game_name,urlfriendly(game_name) AS game_name2 FROM games 

但是,如果我尝试运行下面的代码我得到的错误“警告为的foreach()在/filepath.php线#”

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是从它就好拉后的值)

DELIMITER //

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') 

回答

3

你能得到errorInfo

你可以运行:

GRANT EXECUTE ON `database`.* TO 'username'@'localhost' 

从phpMyAdmin的?

+0

没有显示任何内容 - 这将与PDO一起工作吗? – 2009-01-25 02:10:57