[PDO] chaine de connexion
Fermé
reaverlost
Messages postés
150
Date d'inscription
jeudi 27 mai 2010
Statut
Membre
Dernière intervention
14 mai 2018
-
19 juin 2014 à 10:18
zermat Messages postés 160 Date d'inscription jeudi 19 juin 2014 Statut Membre Dernière intervention 3 juin 2016 - 19 juin 2014 à 13:41
zermat Messages postés 160 Date d'inscription jeudi 19 juin 2014 Statut Membre Dernière intervention 3 juin 2016 - 19 juin 2014 à 13:41
A voir également:
- [PDO] chaine de connexion
- Gmail connexion - Guide
- Gmail connexion autre compte - Guide
- Chaine tnt gratuite sur mobile - Guide
- Connexion chromecast - Guide
- Plus de chaine tv - Guide
8 réponses
ElementW
Messages postés
4816
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 228
19 juin 2014 à 11:36
19 juin 2014 à 11:36
'lut, juste "Erreur" c'est super descriptif comme message d'erreur... Quel gâchis d'ailleurs: PDOException regorge d'infos précises sur l'erreur, alors on va s'en servir:
L'erreur donnée te donnera surement une piste...
... catch(PDOException $e) { echo "Erreur: " . $e->getMessage(); }
L'erreur donnée te donnera surement une piste...
reaverlost
Messages postés
150
Date d'inscription
jeudi 27 mai 2010
Statut
Membre
Dernière intervention
14 mai 2018
21
19 juin 2014 à 11:41
19 juin 2014 à 11:41
Oui désolé, c'était pas très malin.
Voici le message d'erreur :
Erreur : could not find driver
Voici le message d'erreur :
Erreur : could not find driver
zermat
Messages postés
160
Date d'inscription
jeudi 19 juin 2014
Statut
Membre
Dernière intervention
3 juin 2016
16
19 juin 2014 à 11:49
19 juin 2014 à 11:49
jdbc est une couche java, PDO est une couche php. Je ne suis pas sûr qu'ils puissent marcher ensemble. Essayez plutôt d'utiliser la chaîne de connexion suivante:
$db = new PDO("sqlsrv:server=172.31.XXX.XXX:1433;Database=NOMBASE", "USER", "PASSWORD");
Mais il faut que les extensions pdo soit actives dans le fichier php.ini (décommenter php_pdo.dll et php_pdo_mssql.dll). Si vous utilisez php-5.3 ou php-5.4 vous pouvez télécharger les dll ici: http://www.microsoft.com/en-us/download/details.aspx?id=20098
$db = new PDO("sqlsrv:server=172.31.XXX.XXX:1433;Database=NOMBASE", "USER", "PASSWORD");
Mais il faut que les extensions pdo soit actives dans le fichier php.ini (décommenter php_pdo.dll et php_pdo_mssql.dll). Si vous utilisez php-5.3 ou php-5.4 vous pouvez télécharger les dll ici: http://www.microsoft.com/en-us/download/details.aspx?id=20098
reaverlost
Messages postés
150
Date d'inscription
jeudi 27 mai 2010
Statut
Membre
Dernière intervention
14 mai 2018
21
19 juin 2014 à 12:03
19 juin 2014 à 12:03
Merci pour vos réponses.
Mais ça ne fonctionne toujours pas, j'ai bien vérifié les extensions, et toujours le même message d'erreur :
Erreur : could not find driver
Mon code :
Mais ça ne fonctionne toujours pas, j'ai bien vérifié les extensions, et toujours le même message d'erreur :
Erreur : could not find driver
Mon code :
try { $db = new PDO("sqlsrv:server=172.31.XXX.XXX:1433;Database=NOMBASE", "USER", "PASSWORD"); echo "Ok"; } catch(PDOException $e) { echo "Erreur : ". $e->getMessage(); }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
zermat
Messages postés
160
Date d'inscription
jeudi 19 juin 2014
Statut
Membre
Dernière intervention
3 juin 2016
16
19 juin 2014 à 12:16
19 juin 2014 à 12:16
N'oubliez pas qu'après chaque modification de php.ini il faut redémarrer apache.
Aussi faite une page test.php avec ce code
et vérifier que Configuration File (php.ini) Path correspond bien à votre fichier php.ini et que dans la section PDO drivers vous avez mssql enabled.
Aussi faite une page test.php avec ce code
<?php phpinfo(); ?>
et vérifier que Configuration File (php.ini) Path correspond bien à votre fichier php.ini et que dans la section PDO drivers vous avez mssql enabled.
reaverlost
Messages postés
150
Date d'inscription
jeudi 27 mai 2010
Statut
Membre
Dernière intervention
14 mai 2018
21
19 juin 2014 à 12:27
19 juin 2014 à 12:27
Voici ce que j'ai :
Configuration File (php.ini) Path ==> C:\Windows (Pas de fichier php.ini)
Loaded Configuration File ==> C:\Program Files\wamp\bin\apache\apache2.4.4\bin\php.ini
Dans ce fichier php.ini, les extensions liées à PDO sont bien décommentées.
Mais dans mon phpinfo(), dans la rubrique PDO, je n'ai pas mssql enabled...
Configuration File (php.ini) Path ==> C:\Windows (Pas de fichier php.ini)
Loaded Configuration File ==> C:\Program Files\wamp\bin\apache\apache2.4.4\bin\php.ini
Dans ce fichier php.ini, les extensions liées à PDO sont bien décommentées.
Mais dans mon phpinfo(), dans la rubrique PDO, je n'ai pas mssql enabled...
zermat
Messages postés
160
Date d'inscription
jeudi 19 juin 2014
Statut
Membre
Dernière intervention
3 juin 2016
16
19 juin 2014 à 12:58
19 juin 2014 à 12:58
Deux possibilités soit que php ne trouve pas php_pdo_mssql.dll soit qu'il n'arrive pas à le charger (module incompatible).
Pour la première possibilité il faut vérifier la directive extension_dir dans le fichier php.ini correspond bien au dossier dans lequel se trouve php_pdo_mssql.dll. Il est conseillé de donner un chemin absolu à ce dossier par exemple:
extension_dir = "C:\Program Files\wamp\bin\apache\apache2.4.4\bin\ext"
Vérifier que dans ce dossier ext se trouve notre fameux php_pdo_mssql.dll.
Pour éliminer les doutes faite copier le fichier php.ini dans C:\WINDOWS
Redémarrer le serveur
faite le test de phpinfo : il faut obtenir dans la rubrique PDO mssql enabled.
Si malgré tout ça ne fonctionne pas c'est sûr php_pdo_mssql.dll n'est pas compatible avec votre version php. Pour vérifier cela aller dans le dossier où se trouve php.exe et tapez cette commande :
php.exe -m
cette commande liste tout les modules chargés par php parmi lesquels doit se trouver pdo_mssql. Si php n'arrive pas à charger ce module, il va afficher un warning.
Pour la première possibilité il faut vérifier la directive extension_dir dans le fichier php.ini correspond bien au dossier dans lequel se trouve php_pdo_mssql.dll. Il est conseillé de donner un chemin absolu à ce dossier par exemple:
extension_dir = "C:\Program Files\wamp\bin\apache\apache2.4.4\bin\ext"
Vérifier que dans ce dossier ext se trouve notre fameux php_pdo_mssql.dll.
Pour éliminer les doutes faite copier le fichier php.ini dans C:\WINDOWS
Redémarrer le serveur
faite le test de phpinfo : il faut obtenir dans la rubrique PDO mssql enabled.
Si malgré tout ça ne fonctionne pas c'est sûr php_pdo_mssql.dll n'est pas compatible avec votre version php. Pour vérifier cela aller dans le dossier où se trouve php.exe et tapez cette commande :
php.exe -m
cette commande liste tout les modules chargés par php parmi lesquels doit se trouver pdo_mssql. Si php n'arrive pas à charger ce module, il va afficher un warning.
zermat
Messages postés
160
Date d'inscription
jeudi 19 juin 2014
Statut
Membre
Dernière intervention
3 juin 2016
16
19 juin 2014 à 13:41
19 juin 2014 à 13:41
troisième possibilité il vous manque ntwdblib.dll.
ntwdblib.dll est normalement installé avec MSSQL Server vous le trouverez dans C:\Windows\system32 sur la machine où vous avez installé MSSQL Server copiez-le sur la machine où vous avez installé php à coté du fichier php.exe
ntwdblib.dll est normalement installé avec MSSQL Server vous le trouverez dans C:\Windows\system32 sur la machine où vous avez installé MSSQL Server copiez-le sur la machine où vous avez installé php à coté du fichier php.exe