[MySQL(i)/PHP] Erreur inconnue: Couldn't fetch mysqli

SyPiC Messages postés 154 Date d'inscription   Statut Membre Dernière intervention   -  
SyPiC Messages postés 154 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je travaille en PHP et lorsque je teste un service que j'ai créé j'obtiens cette erreur:
Warning: mysqli_prepare() [function.mysqli-prepare]: Couldn't fetch mysqli in C:\wamp\www\airsoft\services\JointureService.php on line 131

la ligne 131 correspond à cette ligne dans le code ci-dessous:
$stmt2 = mysqli_prepare($this->connection, "INSERT INTO $this->tablename (fk_utilisateurs, fk_parties) VALUES (?, ?)");

Mon but est en fait de faire un ajout dans une table de relation seulement si la relation n'existe pas, pour cela je compte combien de relation de ce type existent et si il y en à 0 je fait ma requête d'ajout. Mais voilà, cette erreur apparait.
Merci beaucoup d'avance pour votre aide!

public function create_inscription($pk_partie, $pk_utilisateur) {
	//SELECT COUNT(*) AS COUNT FROM $this->tablename where fk_utilisateurs = ? and fk_parties = ?
	$stmt = mysqli_prepare($this->connection, "SELECT COUNT(*) AS COUNT FROM $this->tablename where fk_utilisateurs = ? and fk_parties = ?");
	$this->throwExceptionOnError();

	mysqli_stmt_execute($stmt);
	$this->throwExceptionOnError();
	
	mysqli_stmt_bind_result($stmt, $rec_count);
	$this->throwExceptionOnError();
	
	mysqli_stmt_fetch($stmt);
	$this->throwExceptionOnError();
	
	mysqli_stmt_free_result($stmt);
	mysqli_close($this->connection);
	
	
	if($rec_count == 0) {
		$stmt2 = mysqli_prepare($this->connection, "INSERT INTO $this->tablename (fk_utilisateurs, fk_parties) VALUES (?, ?)");
		$this->throwExceptionOnError();

		mysqli_stmt_bind_param($stmt2, 'ii', $pk_partie, $pk_utilisateur);
		$this->throwExceptionOnError();

		mysqli_stmt_execute($stmt2);		
		$this->throwExceptionOnError();

		$autoid = mysqli_stmt_insert_id($stmt2);

		mysqli_stmt_free_result($stmt2);		
		mysqli_close($this->connection);

		return $autoid;
	} else {
		return 0;
	}
	
}


A voir également:

1 réponse

SyPiC Messages postés 154 Date d'inscription   Statut Membre Dernière intervention   19
 
Est-ce que c'est du au fait que je prépare 2 statements dans ma méthode?
Sinon, est-il possible de tester si le champ que l'on va créer existe déjà grâce à une requête SQL?
Ce serait la meilleurs méthode, car plus rapide et moins de risque d'erreurs...
0