Problème résultat requête PDO
Posté : 09 août 2010, 15:44
Bonjour à tous 
Je suis exposé à un soucis assez pénible avec PDO sur mon site web, je m'explique :
J'ai créé mon site web en xhtml/css et php/mysql sous WAMP (en local donc) et tout fonctionne parfaitement.
J'ai donc acheté un hébergement mutualisé chez ovh et je l'ai mis dessus, ici aussi tout marche parfaitement.
J'utilise PDO pour ma connexion à la BDD et pour mes requêtes. J'ai voulu utiliser la fonction get_browser() pour obtenir des infos sur la personne connectée (comme son OS ou son navigateur par exemple), mais il faut changer la valeur de browscap dans le php.ini et chez ovh en mutualisé je n'ai pas accès à ce fichier...du coup j'ai voulu mettre mon site sur une machine perso sous debian à la maison.
Après des apt-get install de apache2, php5, mysql-server et php5-mysql, j'ai utilisé les deux commandes suivantes pour les extensions PDO :
Ca me dit que c'est ok, je rajoute donc :
dans le php.ini, et je reboot apache2.
Les ennuis commencent ici...
Mon site est là, ça se connecte bien à la BDD via PDO, j'arrive à faire des requêtes. Cependant j'ai une erreur qui apparait dans une de mes pages alors qu'en local ou sur ovh, la même page ne donne pas d'erreurs o_O :
category_projects
id | name
-----------
1 | C
2 | C++
3 | Python
-------------------------------------------------------------------------------------------------------------------------
projects
id | id_cat | title | description | avancement |
---------------------------------------------------------------------------------------------------
1 | 1 | Helloworld | Mon premier programme en C | 100% |
2 | 1 | Addition | Additionneur en C | 100% |
3 | 3 | Helloworl | Mon helloworld en python | 100% |
L'erreur est donc que $num_cat est un bool(false) et non un objet pdo comme il devrait être =/ du coup l'erreur sur mon site est :
(vous pouvez voir la requête dans le code php que j'ai fourni ^^)
Voilà, si quelqu'un pourrait eclairer ma lanterne svp car je suis un peu perdu là =/ Quelque soit la requête faite à cet endroit, ca me renvoie toujours un bool(false) alors que les requêtes (testées sous phpmyadmin) fonctionnent correctement...
Merci d'avance!
Palozob
Je suis exposé à un soucis assez pénible avec PDO sur mon site web, je m'explique :
J'ai créé mon site web en xhtml/css et php/mysql sous WAMP (en local donc) et tout fonctionne parfaitement.
J'ai donc acheté un hébergement mutualisé chez ovh et je l'ai mis dessus, ici aussi tout marche parfaitement.
J'utilise PDO pour ma connexion à la BDD et pour mes requêtes. J'ai voulu utiliser la fonction get_browser() pour obtenir des infos sur la personne connectée (comme son OS ou son navigateur par exemple), mais il faut changer la valeur de browscap dans le php.ini et chez ovh en mutualisé je n'ai pas accès à ce fichier...du coup j'ai voulu mettre mon site sur une machine perso sous debian à la maison.
Après des apt-get install de apache2, php5, mysql-server et php5-mysql, j'ai utilisé les deux commandes suivantes pour les extensions PDO :
Code : Tout sélectionner
pecl install pdo
pecl install pdo_mysql
Code : Tout sélectionner
extension=pdo.so
extension=pdo_mysql.so
Les ennuis commencent ici...
Mon site est là, ça se connecte bien à la BDD via PDO, j'arrive à faire des requêtes. Cependant j'ai une erreur qui apparait dans une de mes pages alors qu'en local ou sur ovh, la même page ne donne pas d'erreurs o_O :
$cat = $connexion->prepare("SELECT id,name FROM category_projects");
$cat->execute();
while($categorie = $cat->fetch())
{
$num_cat = $connexion->prepare("SELECT COUNT(*) FROM projects WHERE id_cat = " . $categorie['id']);
$num_cat->execute();
$number_cat = $num_cat->fetchColumn();
echo "<h4>" . $categorie['name'] . "</h4>";
if($number_cat != 0) //si la catégorie contient au moins un projet
{
$pjt = $connexion->prepare("SELECT id,title,avancement,priority FROM projects WHERE id_cat = ?");
$pjt->execute(array($categorie['id']));
while($projet = $pjt->fetch())
{
echo "<p>" . $projet['title'] . "</p>";
}
}
}
Voici mes deux tables SQL:category_projects
id | name
-----------
1 | C
2 | C++
3 | Python
-------------------------------------------------------------------------------------------------------------------------
projects
id | id_cat | title | description | avancement |
---------------------------------------------------------------------------------------------------
1 | 1 | Helloworld | Mon premier programme en C | 100% |
2 | 1 | Addition | Additionneur en C | 100% |
3 | 3 | Helloworl | Mon helloworld en python | 100% |
L'erreur est donc que $num_cat est un bool(false) et non un objet pdo comme il devrait être =/ du coup l'erreur sur mon site est :
Code : Tout sélectionner
Fatal error: Call to a member function execute() on a non-object in /var/www/projects.php in line 57Voilà, si quelqu'un pourrait eclairer ma lanterne svp car je suis un peu perdu là =/ Quelque soit la requête faite à cet endroit, ca me renvoie toujours un bool(false) alors que les requêtes (testées sous phpmyadmin) fonctionnent correctement...
Merci d'avance!
Palozob