|
|
|
#1 (permalink) |
|
Messages: n/a
Hébergeur: |
Bonjour,
je suis surtout branché bases de données et plus particulièrement MySQL. J'ai bien quelques notions de PHP mais par exemple je n'ai jamais programmé en modèle objet ... Je suis en train de débugger une application en PHP et il y a toute une partie de ce qui a été développé qui repose sur un algorythme loin d'être irréprochable. N'étant afin de corriger cela j'ai crééé une procédure stockée dans MySQL. j'ai regardé quelques doc PHP pour trouver comment appeler la procédure stockée. Apparemment il faut que soient installées les extensions : extension=php_pdo.dll (le serveur est IIS ...) extension=php_pdo_mysql.dll extension=php_mysql.dll (évidemment !) je les ai donc décommentées au niveau du fichier ini. D'abord je ne vois aucune référence à PDO lorsque j'affiche le résultat de phpinfo(); Est-ce normal ? j'ai bien testé sur d'autres exetension pour vérifier que je modifiait bien le bon fichier php.ini, et pas de doute possible. Ensuite lorsque j'écris dans mon fichier PHP : try { $procTreatRoles = new PDO('mysql:host=localhost;dbname=musiclassics', 'root', ''); $treatInstrumentalRoles = $procTreatRoles->prepare("CALL TreatRoles(:work_id, :roleType, :castTable, :rolesTable)"); $treatInstrumentalRoles->bindParam(':work_id', $work_id); $treatInstrumentalRoles->bindParam(':roleType', $roleType); $treatInstrumentalRoles->bindParam(':castOrder', $castOrder); $treatInstrumentalRoles->bindParam(':rolesOrder', $rolesOrder); $work_id = $this->work_id; $roleType = 'instrumental'; $castOrder = $array_order; $rolesOrder = $instrumental_roles_order; $treatInstrumentalRoles->execute(); } catch (PDOException $e) { print "Error!: " . $e->getMessage() . "<br/>"; die(); } la page web qui déclache cette partie de code affiche le message : Fatal error: Class 'PDO' not found in C:\Inetpub\wwwroot\monsite \classes\Work.php on line 1041 J'ai inclu ce script à l'interieure d'une fonction. Peut-être est-ce cela qui pose probleme. Mais là j'avoue que je ne sais pas à quel niveau mettre cela. Quelqu'un peut-il me conseiller ? D'avance merci Jero. |
|
|
|
#2 (permalink) |
|
Messages: n/a
Hébergeur: |
jero a écrit :
> Bonjour, > > je suis surtout branché bases de données et plus particulièrement > MySQL. J'ai bien quelques notions de PHP mais par exemple je n'ai > jamais programmé en modèle objet ... > Je suis en train de débugger une application en PHP et il y a toute > une partie de ce qui a été développé qui repose sur un algorythme loin > d'être irréprochable. > N'étant afin de corriger cela j'ai crééé une procédure stockée dans > MySQL. > > j'ai regardé quelques doc PHP pour trouver comment appeler la > procédure stockée. Apparemment il faut que soient installées les > extensions : > extension=php_pdo.dll (le serveur est IIS ...) > extension=php_pdo_mysql.dll > extension=php_mysql.dll (évidemment !) Je n'y connais rien a PDO, mais il me semble que les procédures stockées sont accessibles via mysqli, et non mysql. J'espere que ca peut t'aider -- Jérémie |
|
|
|
#3 (permalink) |
|
Messages: n/a
Hébergeur: |
On 7 août, 23:46, jeremie fouche <jfou...@voila.fr> wrote:
> > Je n'y connais rien a PDO, mais il me semble que les procédures stockées > sont accessibles via mysqli, et non mysql. > > J'espere que ca peut t'aider J'ai posté un message hier pour dire que j'avais "résolu" le probleme, c'est a drie qu'aprés un redemarrage de la machine serveur et pas seulement du programme, les choses semblaient d'aplomb et que je n'avait plus qu'à ajuster ma syntaxe qui à quelques détails prés et celle indiquée dans mon premier post. J'avoue par ailleurs que j'avais décommenté dans mon fichier de config l'exetension PDO pour msqli et celle pour mysql ; je ne compte enlever aucune de deux pour le moment pourquoi changer une équipe quigagne ? +°+ jerome |
|
|
|
#4 (permalink) |
|
Messages: n/a
Hébergeur: |
jeremie fouche a écrit :
>> j'ai regardé quelques doc PHP pour trouver comment appeler la >> procédure stockée. Apparemment il faut que soient installées les >> extensions : >> extension=php_pdo.dll (le serveur est IIS ...) >> extension=php_pdo_mysql.dll >> extension=php_mysql.dll (évidemment !) Est-ce qu'après avoir décommenté les options, tu as redémarré le serveur Web ? > Je n'y connais rien a PDO, mais il me semble que les procédures stockées > sont accessibles via mysqli, et non mysql. Je viens de tester sur PHP 5.2.1. mysql_query ne m'a pas permis d'appeler une procédure stockée. mysqli::query() a bien fonctionné. Je ne sais pas si le troll est déjà passé ici, mais il semblerais, d'après des recherches que j'ai effectué, que PDO est à la ramasse en terme de performances. Mais j'avoue ne pas encore avoir testé. Mes 2c¤ ![]() -- Mickaël Wolff aka Lupus Michaelis http://lupusmic.org |
|
![]() |
| Outils de la discussion | |
|
|