PDO probleme de connection.
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:
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:
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 ligne correspondante (mais ca ne vien pas de la je crois donc):
Code:
$res = $mysqlcnx->query("SELECT * FROM actualites ORDER BY Priority");
code de la connexion:
Code:
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());
} |
Je me tue a essayer de trouver une solution, j'ai aussi jeter un œil au log sql:
Code:
1 2
| 110722 16:50:57 [Warning] Aborted connection 2 to db: 'dbName' user:
'userName' host: 'localhost' (Got an error reading communication packets) |
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...)
J'ai aussi fait des tests sur le retour de la fonction PDO et il me retourne un objet PDO, vide...:
Code:
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";
} |
affiche:
Code:
object(PDO)#1 (0) { } PDO Object ( ) NULL
Help please, je suis dans le caca!
P.S.: le serveur RedHat est en loopback, le 'localhost', c'est normal.