Eh bien j'ai cette procédure MySQL stockées que j'ai écrit et si je lance ce qui suit dans les choses phpMyAdmin retourner correctement:Pourquoi mon PHP ne retournera-t-il pas une procédure stockée MySQL?
SELECT game_name,urlfriendly(game_name) AS game_name2 FROM games
Cependant, si je tente d'exécuter le code suivant je reçois l'erreur « Warning: Invalid argument fourni pour foreach() dans /filepath.php en ligne # »
foreach ($this->database->query("SELECT game_name,urlfriendly(game_name) AS game_name2 FROM games") as $games)
{
echo $games["game_name"] . " " . $games["game_name2"];
}
Cependant, si je lance ce tout va bien:
foreach ($this->database->query("SELECT game_name FROM games") as $games)
{
echo $games["game_name"];
}
Signification t il stocké proc ne reviendra pas à PHP.
Des idées?
EDIT Voici le proc stocké (mais je doute qu'il est la question que phpMyAdmin tire les valeurs de retour de celui-ci très bien)
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 Voici la erreur renvoyée de MySQL
execute command denied to user 'username'@'localhost' for routine 'databasename.urlfriendly')
N'affichait rien - cela fonctionnera-t-il avec PDO? –
Non, pour PDO, essayez http://us2.php.net/manual/fr/pdostatement.errorinfo.php –
Pour PDO, vous avez besoin de print_r ($ this-> database-> errorInfo()). Je devine que c'est une chose d'autorisations si cela fonctionne dans phpmyadmin. – Greg