Utiliser PDO chez OVH

Résolu/Fermé
Linebarrels - 22 juil. 2014 à 18:32
 Linebarrels - 30 juil. 2014 à 15:41
Bonjour,

Je vous contact car j'ai une petit problème chez OVH avec l'utilisation de PDO:

Dans un premier temps je me connecte à l'aide du code suivant:
try{
		$connexion=new PDO('mysql:host=xxx; dbname=xxx', 'xxx', 'xxx');
	}
catch(Exception $e){
		die('Erreur : '.$e->getMessage());
	}


Ensuite j'exécute une requête à la base de donnée:
$resultat=$connexion->query("SELECT * FROM type ORDER BY LIB_TYPE");


Au moment où j'exécute cette dernière ligne, tout le chargement de la page s'arrête et du coup je n'ai que la partie je la page avant ce problème.

Je précise que je n'ai pas d'erreurs d'affichée et que je suis en php version 5.4.30 (donc pdo est installé par défaut si j'ai bien compris).

J'arrivai à récupérer les données avec mysql_connect mais avec pdo je n'y arrive pas.

Est-ce qu'il y a un réglage à faire ou il y a une erreur dans mon code ?
A voir également:

8 réponses

Bonjours,

Après avoir demandé a OVH, ils mon indiqué qu'il n'y avait aucun problème de leurs coté et que PDO devrait marcher.

J'ai donc a nouveau vérifié mon code et j'ai trouvé mon erreur.
Cela venait des mes includes qui faussaient mon code.
Je m'explique:

eu fait j'utilise 3 fichiers différents:
- 1 fichier qui contient ma connexion à la BDD
- 1 fichier qui contient plusieurs fonction permettant d'exécuter différentes requête
- 1 fichier permettant d'afficher le résultat

L'erreur venais du fait que j'importais le fichier de connexion en dehors des fonction de la seconde page en donc que celle ci n'etait pas prise en compte pur la requête.

Merci de votre aide et bonne journée à tout le monde.
2
Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
22 juil. 2014 à 18:45
Bonjour,

Si tu n'a pas d'erreur, c'est peut-être parce qu'elles sont désactivé (regarde du côté du htaccess pour gérer ça.)

Sinon, look ton phpinfo() pour voir si pdo est présent.
0
totodunet Messages postés 1377 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 5 mars 2020 199
22 juil. 2014 à 18:53
salut,

tu peux aussi exécuter cette ligne de code :

extension_loaded("php_pdo_mysql");


elle renvoie true si l'extension PDO pour MySQL est installée

j'ai eu le même problème avec 1&1 et ils m'ont dit que PDO n'était pas utilisable sur un serveur Windows, pourtant avec une version récente de php installée dessus et qu'il fallait que j'opte pour un serveur Linux.
0
Merci de ta réponse rapide.

Concernant le htaccess je n'ai malheureusement pas le temps d'approfondir cette solution pour le moment (je suis encore débutant à ce niveau).

Pour le phpinfo, j'ai regardé et il me met les infos suivantes:
PDO
PDO support enabled
PDO drivers mysql, pgsql, sqlite

pdo_mysql
PDO Driver for MySQL enabled
Client API version 5.1.73

Je suppose donc que PDO est présent et activé.

Demain je regarderais pour le htaccess.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
totodunet Messages postés 1377 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 5 mars 2020 199
22 juil. 2014 à 20:44
en réalité c'est dans le php.ini que c'est configurable mais comme l'accès à ce fichier n'est pas autorisé si c'est un hébergement mutualisé, l'hébergeur t'autorises peut-être à configurer certaines options via un fichier .htaccess. Tu peux aussi activer l'extension mysql pour PDO avec ini_set() mais là pareil m'étonnerait que cette fonction sera exécutée sur le serveur.

mais je pense que PDO est bien activé donc tu n'as plus à t'occuper de ça ni du htaccess.

as-tu essayé d'exécuter ta requête dans ton SGBDR directement pour savoir si le problème ne vient pas de là ?

il y a t'il des messages d'erreurs ?

ton problème ressemble à un oubli de ; ou de parenthèses


0
J'ai testé avec le petit bout de code suivant et il me retourne "non"
$test = extension_loaded("php_pdo_mysql");
if($test == true) echo "oui";
else echo "non";

Le problème ?

Du coté de la requête, elle fonctionne.

Je n'ai malheureusement pas de message d'erreur (Dans un sens c'est un peu ce qui m'embête).
J'utilisais avant mysql_connect car avec free, pdo ne fonctionnait pas. Je suis passé chez OVH en partie pour l'utiliser.

J'ai vérifié mon code (et même supprimé des ligne "inutiles" pour tester) ma ça ne change rien.

Ce qui me parait bizarre c'est que la connexion à la base de donnée se passe bien sans erreur (si je change une variable il me met une erreur) c'est seulement au moment d'exécuter la requête que me plante.
0
Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
24 juil. 2014 à 12:56
Me semble que PDO cache les erreurs par défaut, regarde de ce côté :
https://www.php.net/manual/fr/pdo.errorinfo.php
Pour voir si tu ne peut pas obtenir plus d'info.
0
@ Nhay -> Malheureusement cela ne m'aide pas beaucoup car le serveur arrête le chargement de la page juste au moment d'exécuter la ligne qui me pause problème. Ensuite il n'exécute plus rien (même pas un simple echo)

J'ai contacté par message directement le service technique pour voir ce qu'ils me disent.
Je vous tiens au courant.
0