coder avec PDO / mySQL--> Class PDO not found in G:\www\sitelocal\..

Petit nouveau ! | 4 Messages

29 févr. 2008, 15:53

Bonjour,

J'ai bien :

-le module PDO et PDO Mysql (php_pdo et php_pdo_mysql.dll) activé dans le PHP ini,
- il est coché dans les extensions sur Wamp
- et j'ai bien libmysql.dll dans le system32 de windows.

voici mon code :

Code : Tout sélectionner

$user="root"; $pass=""; $dsn="mysql:host=localhost;dbname=publication"; //------connexion--------- try { $pdo=new PDO($dsn,$user,$user); } catch(PDOException $e) { die("Erreur !:". $e->getMessage()); }
le message qui m'est retourné est :
fatal error:Class 'PDO' not found in G:\www\laousetrouvemonsiteloca\classes\mapage.php

:( , quelqu'un sait-il pourquoi le moteur PHP ne va pas chercher les classes PDO, et va le chercher dans mapage.php ?

merci..

ViPHP
ViPHP | 4674 Messages

29 févr. 2008, 16:04

T'as bien redémarre Apache ?
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Petit nouveau ! | 4 Messages

29 févr. 2008, 16:25

oui, cela ne change rien..
je viens de regarder le code sur PHPteam avec leur codePDO.. j'ai recoder la même chose, et j'ai toujours la même réponse erreur..

pourquoi va t'il chercher la classe PDO au niveau de la page.php ? :(

d'ailleurs voici le code de la page en entier..

Code : Tout sélectionner

<?php $dsn="mysql:host=localhost;dbname=$db"; $db="onimmenu"; $user="root"; $pass=""; //------connexion--------- try { $pdo=new PDO($dsn,$user,$pass); } catch(PDOException $e) { die("Erreur !:". $e->getMessage()); } //-----------lecture d'enregistrements---------- $sql ="SELECT menu.cle, menu.valeur FROM oniam.menu"; $pdo_result=$pdo->query($sql); while ($ligne = $pdo_result->fetch()) { print_r($ligne); } //fermeture $pdo = null; ?>
Modifié en dernier par serveur3 le 29 févr. 2008, 17:23, modifié 1 fois.

ViPHP
ViPHP | 4039 Messages

29 févr. 2008, 16:44

il ne cherche pas la classe pdo dans ta page, il dit juste ou se trouve l'erreur.

Moi je planche pour les modules qui ne sont pas chargés.. tu as essayé un phpinfo() ?
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Petit nouveau ! | 4 Messages

29 févr. 2008, 17:11

oui, j'ai regardé la page phpinfo()..

il est marqué :PDO Drivers -> mysql,sqlite2 : enabled

PDO driver for mysql, client library version : 5.0.45


lorsque je le lance du serveur localhost : j'ai le message:

fatal error: call to a member function fetch() on a non-object in G\......

:(


quelqu'un peut-il reprendre le code et le tester sur son serveur wamp ? (avec une base, login/mdp et requête adapté bien sur).. juste pour voir que c'est pas une erreur de code :?:

merci

ViPHP
ViPHP | 4039 Messages

29 févr. 2008, 18:04

ah ben c'est déjà un autre message ça.. pdo marche bien..
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

ViPHP
ViPHP | 4674 Messages

29 févr. 2008, 18:16

Maintenant que PDO fonctionne, il te dit que fetch() est appelé sur un membre qui n'est pas un objet. query() retourne un objet PDOStatement normalement. Tente un var_dump($pdo_result);.
Sinon je t'invite à lire la documentation sur query, et surtout à lire l'exemple 1.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Eléphant du PHP | 259 Messages

29 févr. 2008, 18:25

Hello,

Ligne 2 : tu affecte $db à $dsn
Ligne 3 : tu définis $db

C'est pas logique :)

Intervertis ces deux lignes pour voir ?

Petit nouveau ! | 4 Messages

29 févr. 2008, 18:30

ouhhh, la c'est bizarre..

bon c'est résolu.. j'explique, même si je comprends pas :shock:

phpdesigner a bien le chemin qui pointe sur le serveur localhost et le chemin repertoire local (c:\..) qui pointe bien sur wamp.

le "debugger" et le 'run' de phpdesigner pointe sur le propre moteur php de phpdesigner qui pointe sur php-cgi.exe et php.ini dans son répertoire à lui dans program files.

j'ai repointé le path du debugger et du run vers wamp..

logiquement, c'est vrai que en le lancant dans le 'run' du logiciel, je conçois l'erreur puisque cela va pointer sur son propre moteur qui n'a pas l'extension PDO.

mais pas en lancant du navigateur l'url "http://localhost/site/page.php" car là c'est le moteur wamp qui fait l'execution php.. non ?

le logiciel phpdesigner n'aurait pas pu agir comme serveur localhost , surtout si le chemin dans ses préférences 'localhost' pointait sur wamp...!! d'où je ne comprends pas

:?: :?:

en tout cas merci de m'avoir lu et aider. :)

PS, oui excuse merci, j'avais entretemps intervertit ligne 2 et 3.