Pourquoi je reçois cet appel de fonction d'erreur sur un non-objet, quand je suis en appel d'une fonction sur un objet?
Erreur:
Erreur fatale: Appel d'une fonction membre
bind_param() sur un non-objet dans
/var/www/web55/web/pdftest/events.php
sur la ligne 76
Code:
public function countDaysWithoutEvents(){
$sql = "SELECT 7 - COUNT(*) AS NumDaysWithoutEvents
FROM
(SELECT d.date
FROM cali_events e
LEFT JOIN cali_dates d
ON e.event_id = d.event_id
WHERE YEARWEEK(d.date) = YEARWEEK(CURRENT_DATE())
AND c.category_id = ?
GROUP BY DAY(d.date)
) AS UniqueDates";
$stmt = $this->link->prepare($sql);
$stmt->bind_param('i', $this->locationID);
$stmt->execute();
$stmt->bind_result($count);
$stmt->close();
return $count;
}
$this->link->prepare($sql)
crée une instruction préparée pour MySQLi.
Pourquoi j'obtiens cette erreur?
essayez de faire un var_dump($stmt) avant le bind_param()
bool(false) ... Bizarre.
Sur une autre note, le bind_param() doit avoir 1 comme premier paramètre.
Non, il doit avoir le type que le premier paramètre, comme indiqué ici: us2.php.net/manual/en/mysqli-stmt.bind-param.php
double possible de Appel à une fonction membre sur un non-objet, mysqli pourquoi ce qui se passe?...
bool(false) ... Bizarre.
Sur une autre note, le bind_param() doit avoir 1 comme premier paramètre.
Non, il doit avoir le type que le premier paramètre, comme indiqué ici: us2.php.net/manual/en/mysqli-stmt.bind-param.php
double possible de Appel à une fonction membre sur un non-objet, mysqli pourquoi ce qui se passe?...
OriginalL'auteur Malfist | 2009-06-05
Vous devez vous connecter pour publier un commentaire.
AND c.category_id = ?
- il n'y a pas d'alias de table c dans votre requête.En outre essayer
La requête a un certain "odeur" de toute façon, au moins, c' semble sous-optimale si pas de mal 😉
AH! Duh! Il convient de e.category_id. headdesk
OriginalL'auteur VolkerK
Je pense que le problème est évidemment avec la préparer fonction..
La fonction est probablement à défaut, dans ce cas $stmt serait FAUX, et donc pas la bind_param méthode en tant que membre.
Vérifier votre requête! Peut-être il ya un problème avec votre instruction SELECT. Et aussi vérifier les FAUX avant d'essayer d'exécuter n'importe quelle fonction membre sur ce que vous pensez est un objet retourné par la préparer à la fonction.
MODIFIER
Je serais tenté de croire que la déclaration peut être erroring arrière en raison de la sous-requête:
Au lieu de cela, pourquoi ne pas écrire votre requête comme ceci:
P. S. je pense que vous avez aussi eu un manque de un appel à chercher ainsi.. (voir l'exemple ci-dessus)
eh bien, que peut-être, mais cela ne signifie pas que MySQLi ne peuvent pas se plaindre de quelque chose. Je sais qu'il y a certaines limitations dans l'exécution de code MySQL de PHP, principalement pour prévenir l'injection SQL.. concernant principalement les sous-requêtes..
mysqli->erreur est vide.
comment puis-je corriger, que la sous-requête doit vraiment être là.
voir le dernier exemple de code. Le fait de résoudre le problème?
OriginalL'auteur Mike Dinescu
$this->lien>préparer cette déclaration n'est pas le retour de l'objet
donc, c'est de vous donner l'erreur
OriginalL'auteur maxjackie