Почему мой PHP не возвращает хранимую процедуру MySQL? - PullRequest
1 голос
/ 25 января 2009

Ну, у меня есть эта хранимая процедура MySQL, которую я написал, и если я запускаю следующее в phpMyAdmin, вещи возвращаются правильно:

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 просто извлекает значения из него)

РАЗДЕЛИТЕЛЬ //

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

1 Ответ

3 голосов
/ 25 января 2009

Можете ли вы получить errorInfo?

Можете ли вы запустить:

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

От phpMyAdmin?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...