Bonjour à tous,

je développe une apli flex avec Flash Builder 4.
J'utilise ZendAmf pour faire le lien entre mes services et les classes php qui exécutent les requêtes vers ma base de données MySQL.

Je remarque que très souvent, lorsque je compile mon appli, j'ai des erreurs Apache qui surviennent :
httpd.exe - Erreur d'application
L'instruction à "toto" emploie l'adresse mémoire "titi". La mémoire ne peut pas être "read".

J'ai installé Charles Web Debugging Proxy et je m'aperçois que les erreurs surviennent souvent quand j'envoie un certain type de requêtes vers ma base MySQL. C'est pas systématique mais fréquent. A priori, ca ne le fait que pour cette requête.
En principe, quand je clique "OK" après un message d'erreur, je vois que la requête incriminée se relance pour finalement me retourner un résultat normal...

Au niveau de la requête, Charles m'indique ceci : "AMF data is incomplete (0 bytes of 0 bytes). Please check the recording limits in the Recording Settings."

Voici la fonction php que le gateway.php de ZendAmf appelle :

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
29
30
31
32
33
34
35
36
37
38
39
40
 
public function getChansonByArtiste($artiste) {
 
		$stmt = mysqli_prepare($this->connection, "
			SELECT chanson.libelle_chanson, chanson.duree, album.libelle_album, artiste_has_album.libelle_artiste 
			FROM artiste_has_album 
			INNER JOIN album
			ON album.id_album = artiste_has_album.id_album
			INNER JOIN album_has_chanson
			ON album.mbid = album_has_chanson.mbid_album
			INNER JOIN chanson
			ON chanson.mbid = album_has_chanson.mbid_chanson			
			WHERE artiste_has_album.libelle_artiste = ?
		");
 
 
		$this->throwExceptionOnError();
 
		$artiste = utf8_decode($artiste);
		mysqli_stmt_bind_param($stmt, 's', $artiste);		
		$this->throwExceptionOnError();
 
		mysqli_stmt_execute($stmt);
		$this->throwExceptionOnError();
 
		$rows = array();
 
		mysqli_stmt_bind_result($stmt, $row->libelle_chanson, $row->duree, $row->libelle_album, $row->libelle_artiste);
 
	    while (mysqli_stmt_fetch($stmt)) {
	      $rows[] = $row;
	      $row = new stdClass();
	      mysqli_stmt_bind_result($stmt, $row->libelle_chanson, $row->duree, $row->libelle_album, $row->libelle_artiste);
	    }
 
	    mysqli_stmt_free_result($stmt);
	    mysqli_close($this->connection);
 
	    return $rows;
	}
Qu'en pensez vous ?
Est-ce que vous voyez des choses à modifier dans ma requête ?
Est-ce qu'il faut que je remonte au niveau ActionScript du traitement ?
Merci de votre attention