Fatal error: Call to a member function fetch() on a non-object
Résolu/Fermé
jordxn
Messages postés
356
Date d'inscription
jeudi 15 avril 2010
Statut
Membre
Dernière intervention
26 avril 2015
-
24 avril 2013 à 21:04
Elo - 6 mai 2013 à 10:21
Elo - 6 mai 2013 à 10:21
A voir également:
- Fatal error: uncaught error: call to a member function fetch() on bool in
- Playback error reconnect in 3s (1/5) francais - Forum Box et Streaming vidéo
- Press esc in 1 seconds to skip startup.nsh any other key to continue ✓ - Forum Windows 10
- Aux in - Forum Audio
- Error 0x80070643 - Accueil - Windows
- Cvbs in 1 - Forum Autoradio
3 réponses
gardiendelanuit
Messages postés
1770
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
19 novembre 2016
264
Modifié par gardiendelanuit le 25/04/2013 à 15:27
Modifié par gardiendelanuit le 25/04/2013 à 15:27
Bonjour,
Tu appel une méthode PDO sur un string.. je ne vois nul par une ligne concernant ta BDD...
Ha et aussi met un titre plus explicite ;)
Merci de mettre "Résolu" quand le problème est réglé!
La connaissance c'est comme la confiture: moins on en a et plus on l'étale.
Tu appel une méthode PDO sur un string.. je ne vois nul par une ligne concernant ta BDD...
Ha et aussi met un titre plus explicite ;)
Merci de mettre "Résolu" quand le problème est réglé!
La connaissance c'est comme la confiture: moins on en a et plus on l'étale.
jordxn
Messages postés
356
Date d'inscription
jeudi 15 avril 2010
Statut
Membre
Dernière intervention
26 avril 2015
1
28 avril 2013 à 21:57
28 avril 2013 à 21:57
Bonjour,
j'ai maintenant la meme erreur a prepare() :
function getEventsDate($mois, $annee) {
$result = array();
$sql = 'SELECT DISTINCT jour_taches, titre_taches FROM calendrier c, taches t WHERE mois_taches='.$mois.' AND annee_taches='.$annee.' AND c.id_taches = t.id_taches ORDER BY jour_taches';
$query = $pdo->prepare($sql);
$query->execute();
if($query)
{
}else{
die("Une requête a échouée.");
}
while ($row = $query->fetch(PDO::FETCH_NUM)){
$result[] = $row[0];
$result[] = $row[1];
}
if($pdo){
$pdo = NULL;
}
return $result;
}
function afficheEvent($i, $event) {
$texte = ""; $suivant = false;
foreach($event as $cle => $element) {
if($suivant) {
$texte .= $element."<br/>";
}
if($element == $i) {
$suivant = true;
} else {
$suivant = false;
}
}
return $texte;
}
j'ai maintenant la meme erreur a prepare() :
function getEventsDate($mois, $annee) {
$result = array();
$sql = 'SELECT DISTINCT jour_taches, titre_taches FROM calendrier c, taches t WHERE mois_taches='.$mois.' AND annee_taches='.$annee.' AND c.id_taches = t.id_taches ORDER BY jour_taches';
$query = $pdo->prepare($sql);
$query->execute();
if($query)
{
}else{
die("Une requête a échouée.");
}
while ($row = $query->fetch(PDO::FETCH_NUM)){
$result[] = $row[0];
$result[] = $row[1];
}
if($pdo){
$pdo = NULL;
}
return $result;
}
function afficheEvent($i, $event) {
$texte = ""; $suivant = false;
foreach($event as $cle => $element) {
if($suivant) {
$texte .= $element."<br/>";
}
if($element == $i) {
$suivant = true;
} else {
$suivant = false;
}
}
return $texte;
}
gardiendelanuit
Messages postés
1770
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
19 novembre 2016
264
29 avril 2013 à 12:18
29 avril 2013 à 12:18
Où est déclaré $pdo?
jordxn
Messages postés
356
Date d'inscription
jeudi 15 avril 2010
Statut
Membre
Dernière intervention
26 avril 2015
1
29 avril 2013 à 16:47
29 avril 2013 à 16:47
J'ai inclué le fichier config qui est :
<?php
// Connexion a la base de donnees
$host='**';
$database='**';
$user='**';
$password='**';
$strCon = "mysql:host=$host;dbname=$database";
$arrExtraParam= array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8");
$pdo = new PDO($strCon, $user, $password, $arrExtraParam);
$pdo->exec("SET NAMES 'utf8'");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
?>
<?php
// Connexion a la base de donnees
$host='**';
$database='**';
$user='**';
$password='**';
$strCon = "mysql:host=$host;dbname=$database";
$arrExtraParam= array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8");
$pdo = new PDO($strCon, $user, $password, $arrExtraParam);
$pdo->exec("SET NAMES 'utf8'");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
?>
gardiendelanuit
Messages postés
1770
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
19 novembre 2016
264
29 avril 2013 à 16:49
29 avril 2013 à 16:49
Dans ce cas :
global $pdo;au début de ta fonction car la porté des variable global n'est pas la même comme en C/C++ ;)
jordxn
Messages postés
356
Date d'inscription
jeudi 15 avril 2010
Statut
Membre
Dernière intervention
26 avril 2015
1
29 avril 2013 à 16:51
29 avril 2013 à 16:51
function getEventsDate($mois, $annee) {
global $pdo;
$result = array();
$sql = 'SELECT DISTINCT jour_taches, titre_taches FROM calendrier c, taches t WHERE mois_taches='.$mois.' AND annee_taches='.$annee.' AND c.id_taches = t.id_taches ORDER BY jour_taches';
$query = $pdo->prepare($sql);
$query->execute();
if($query)
{
}else{
die("Une requête a échouée.");
}
while ($row = $query->fetch(PDO::FETCH_NUM)){
$result[] = $row[0];
$result[] = $row[1];
}
if($pdo){
$pdo = NULL;
}
return $result;
}
function afficheEvent($i, $event) {
$texte = ""; $suivant = false;
foreach($event as $cle => $element) {
if($suivant) {
$texte .= $element."<br/>";
}
if($element == $i) {
$suivant = true;
} else {
$suivant = false;
}
}
return $texte;
}
comme ceci ?
Merci
global $pdo;
$result = array();
$sql = 'SELECT DISTINCT jour_taches, titre_taches FROM calendrier c, taches t WHERE mois_taches='.$mois.' AND annee_taches='.$annee.' AND c.id_taches = t.id_taches ORDER BY jour_taches';
$query = $pdo->prepare($sql);
$query->execute();
if($query)
{
}else{
die("Une requête a échouée.");
}
while ($row = $query->fetch(PDO::FETCH_NUM)){
$result[] = $row[0];
$result[] = $row[1];
}
if($pdo){
$pdo = NULL;
}
return $result;
}
function afficheEvent($i, $event) {
$texte = ""; $suivant = false;
foreach($event as $cle => $element) {
if($suivant) {
$texte .= $element."<br/>";
}
if($element == $i) {
$suivant = true;
} else {
$suivant = false;
}
}
return $texte;
}
comme ceci ?
Merci
gardiendelanuit
Messages postés
1770
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
19 novembre 2016
264
29 avril 2013 à 16:54
29 avril 2013 à 16:54
Dans le cas ou l'include est fait à l'extérieur de ta fonction oui, ca me semble juste.
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
29 avril 2013 à 20:14
29 avril 2013 à 20:14
Je t'ai mis juste avant comme faire pour ne pas incorporer des variables dans la requete, et tu me refais ca. Donc fais comme je t'ai montré avant ;-)
jordxn
Messages postés
356
Date d'inscription
jeudi 15 avril 2010
Statut
Membre
Dernière intervention
26 avril 2015
1
29 avril 2013 à 20:15
29 avril 2013 à 20:15
Je voudrais voir si sa marche déjà comme sa (car c'est la méthode la plus facile) même si c 'est pas sécurisé...
Comment ca se fait qu'il me dise sa comme erreur stp...
Comment ca se fait qu'il me dise sa comme erreur stp...
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
29 avril 2013 à 20:26
29 avril 2013 à 20:26
C'est pas plus facile, tu risques plus de faire une erreur de cote/double cote comme ca qu'en faisant un bindValue avec un tableau dans le execute. D'ailleurs c'est ton probleme ici
jordxn
Messages postés
356
Date d'inscription
jeudi 15 avril 2010
Statut
Membre
Dernière intervention
26 avril 2015
1
30 avril 2013 à 00:05
30 avril 2013 à 00:05
function getEventsDate($mois, $annee) {
global $pdo;
$proprietaire=($_SESSION['username']);
$result = array();
$query = $pdo->prepare('SELECT jour_taches, intitule, proprietaire FROM calendrier c join taches t on c.id_taches = t.id_taches WHERE mois_taches=:mois AND annee_taches=:annee AND proprietaire=:proprietaire ORDER BY jour_taches');
$query->bindParam(':mois',$mois);
$query->bindParam(':annee',$annee);
$query->bindParam(':proprietaire',$proprietaire,PDO::PARAM_STR);
$query->execute();
sa ne marche plus depuis que j'ai fait les bindparam...
global $pdo;
$proprietaire=($_SESSION['username']);
$result = array();
$query = $pdo->prepare('SELECT jour_taches, intitule, proprietaire FROM calendrier c join taches t on c.id_taches = t.id_taches WHERE mois_taches=:mois AND annee_taches=:annee AND proprietaire=:proprietaire ORDER BY jour_taches');
$query->bindParam(':mois',$mois);
$query->bindParam(':annee',$annee);
$query->bindParam(':proprietaire',$proprietaire,PDO::PARAM_STR);
$query->execute();
sa ne marche plus depuis que j'ai fait les bindparam...
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
Modifié par jeremy.s le 30/04/2013 à 15:47
Modifié par jeremy.s le 30/04/2013 à 15:47
A defaut si tu lui dit pas, il met des string. Donc si tes mois taches et annee taches sont des number, il faut mettre PDO::PARAM_INT
Et c'est pas pcq tu mets des bindValue qu'il faut zapé les " " !
WHERE proprietaire=":proprietaire"
Et c'est pas pcq tu mets des bindValue qu'il faut zapé les " " !
WHERE proprietaire=":proprietaire"