Bonjour,
Je suis actuellement face a un problème de taille puisque cela fait plus de trois jours que je ne trouver pas de solution, même après avoir consulter google...
Explications:
Je suis en train de créer un site web avec php/mysql. Et n'ayant pas accès directement aux serveurs apache et mysql, je me suis installer sur mon PC un WAMPSERVER histoire de développer tranquille et ensuite tous transférer sur le serveur dédier UNIX (RedHat).
J'utilise PDO pour la connexion a mysql.
Mon WAMPSERVER est a jour, (trop peut être...):
-APACHE 2.2.17
-PHP 5.3.4
-MySql 5.1.53
Tous marche a la perfection sur ce serveur.
Puis est venu le temps de basculer sur le redhat pour test et mise en ligne...
Problème:
J’obtiens ici un des problème les plus étrange auquel j'ai jamais été confronte:
toutes les pages se connectant via PDO a mysql foire et reste blanche sans rien afficher (même avec des echo ni même du HTML) j’obtiens de manière complétement aléatoire certaines erreurs venant de PDO.
version sur le serveur:
-Mysql 5.0.77
-PHP 5.1.6
-Apache 2.2.3
bien que les version soit différente PDO est installer avec les drivers.
Petit code que j'ai trouver sur le site:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 foreach(get_loaded_extensions() as $extension) { if(strpos(strtolower($extension), 'pdo') !== FALSE) { echo $extension.'<br/>'; } } //Affiche PDO pdo_mysql pdo_sqlite
En voila un exemple:
code de la ligne correspondante (mais ca ne vien pas de la je crois donc):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Warning: PDO::prepare() [function.PDO-prepare]: SQLSTATE[HY000]: General error: constructor arguments must be passed as an array in /www3/OOV/oov/actu/postActu_PDO.php on line 36 Warning: PDO::prepare() [function.PDO-prepare]: SQLSTATE[HY000]: General error: failed to instantiate user-supplied statement class in /www3/OOV/oov/actu/postActu_PDO.php on line 36 Fatal error: Call to a member function execute() on a non-object in /www3/OOV/oov/actu/postActu_PDO.php on line 83
code de la connexion:
Code : Sélectionner tout - Visualiser dans une fenêtre à part $res = $mysqlcnx->query("SELECT * FROM actualites ORDER BY Priority");
Je me tue a essayer de trouver une solution, j'ai aussi jeter un œil au log sql:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 try { $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; $pdo_options[PDO::ATTR_PERSISTENT] = false; $mysqlcnx = new PDO("mysql:host=localhost;dbname=newsoov", '$login', '$mdp', $pdo_options); } catch (Exception $e) { die("An error occured: " . $e->getMessage()); }
qui aparait a chaque tentative de connection... doc internet pas tres bavard la dessus (je meme tester ce que Mysql preconnise dans ce genre de cas...)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 110722 16:50:57 [Warning] Aborted connection 2 to db: 'dbName' user: 'userName' host: 'localhost' (Got an error reading communication packets)
J'ai aussi fait des tests sur le retour de la fonction PDO et il me retourne un objet PDO, vide...:
affiche:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 var_dump($mysqlcnx); print_r($mysqlcnx); if ($mysqlcnx == NULL) { ECHO "NULL"; } else { ECHO "PAS NULL"; }
Help please, je suis dans le caca!
Code : Sélectionner tout - Visualiser dans une fenêtre à part object(PDO)#1 (0) { } PDO Object ( ) NULL
P.S.: le serveur RedHat est en loopback, le 'localhost', c'est normal.
Partager