Bonjour,

j'ai une application Flex 4 qui utilise AMFPHP 1.9 pour communiquer avec une base de données MySQL, tout ca sur un serveur EasyPHP 5.3.1.

J'ai placé plusieurs services PHP dans le répertoire d'AMFPHP et à priori pas de problème pour y accéder et les utiliser.

Parfois, quand j'interagis avec mon application Flex, il lance une requête via un service mais ne reçoit pas de résultat. Avec Charles Web Debugging Proxy, je m'aperçois que la fonction PHP lance cette exception : mysqli_prepare() : couldn't fetch mysqli
Voici la fonction incriminée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public function getGenreSimilaire($genre) {
 
 
		$stmt = mysqli_prepare($this->connection, "SELECT genreSimilaire FROM genresimilaire WHERE genre =? ORDER BY score_genreSimilaire");
		$this->throwExceptionOnError();
 
		mysqli_stmt_bind_param($stmt, 's', utf8_decode($genre));		
		$this->throwExceptionOnError();
 
		mysqli_stmt_execute($stmt);
		$this->throwExceptionOnError();
 
		$rows = array();
 
		mysqli_stmt_bind_result($stmt, $row);
 
	    while (mysqli_stmt_fetch($stmt)) {
	      $row = utf8_encode($row);
	      $rows[] = $row;
	      $row = new stdClass();
	      mysqli_stmt_bind_result($stmt, $row);
	    }
 
	    mysqli_stmt_free_result($stmt);
	    mysqli_close($this->connection);
 
	    return $rows;
	}

La requête en question est testée et fonctionnelle. Elle retourne le bon résultat sous le browser intégré à AMFPHP.

Dans mon appli Flex, je m'y prends comme ca pour lancer ma requête :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
var genreSimilaire:RemoteObject = new RemoteObject();
			genreSimilaire.destination = "MusicServer";
			genreSimilaire.source = "GenreService2";
			genreSimilaire.showBusyCursor = true;
			genreSimilaire.addEventListener(ResultEvent.RESULT, getGenresSimilairesHandler);
			genreSimilaire.addEventlistener(FaultEvent.FAULT, getFaultEventData);
 
			genreSimilaire.getGenreSimilaire(value);
Cette fonction marche 1 première fois et affiche le résultat de la requête PHP. Mais ensuite, l'exception PHP est lancée et la fonction getGenresSimilairesHandler n'est pas appelée.

Avez-vous une idée de pourquoi cette exception survient au niveau du mysql_prepare ? Des pistes de réflexions ?
J'ai testé la connexion de cette manière
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
if(!$this->connection)
			throw new Exception("Connection null");
Mais je n'ai pas d'exception autre que celle du mysql_prepare...

Merci de votre attention