Ну, у меня есть эта хранимая процедура 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' )