2010-10-18 9 views
0
public function endGame($result) { 

    $sql = "UPDATE games SET result = ? WHERE id = ?"; 

    $stmt = $this->db->prepare($sql); 
    $stmt->bind_param("si", $result, $this->currentGame);//Error here 
    $stmt->execute(); 
    $stmt->close(); 
} 

mysql> describe games; 
+-------------+-------------+------+-----+---------+----------------+ 
| Field  | Type  | Null | Key | Default | Extra   | 
+-------------+-------------+------+-----+---------+----------------+ 
| id   | int(12)  | NO | PRI | NULL | auto_increment | 
| name  | varchar(20) | NO |  | NULL |    | 
| date_played | datetime | NO |  | NULL |    | 
| difficulty | tinyint(4) | YES |  | NULL |    | 
| result  | varchar(20) | NO |  | NULL |    | 
+-------------+-------------+------+-----+---------+----------------+ 
5 rows in set (0.00 sec) 

Fatal error: Call to a member function bind_param() on a non-object 

Je sais qu'une erreur non-objet dans cette installation signifie probablement que mon SQL est mauvais, mais j'ai de la difficulté à voir l'erreur.Instruction préparée: Appel à la fonction de membre sur non-objet

+0

Sur quelle ligne l'erreur se produit-elle? – deceze

+0

Sur le bind_param – TehNatha

+1

Cela signifie probablement que votre 'prepare' n'a pas abouti, et' $ stmt' est indéfini – Andomar

Répondre

0

Vous devez publier le message d'erreur complet. Le problème est, comme l'a dit Andomar, que $stmt est probablement une erreur au lieu d'un objet d'instruction.

0

J'ai trouvé mon problème. L'utilisateur que j'ai créé pour accéder à la base de données n'a pas les autorisations appropriées.