jero
2007-08-07 10:40:13 UTC
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.
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.