Problème MYSQL php ou peut-être ajax. je ne sais pas.
Bonjour à tous !
j'ai ce script php déclenché par un appel ajax :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
require_once("../sys_config/config_generale_site.php");
require_once("../sys_fonctions/api_fonctions.php");
base_connect($serveur_mysql,$base_site_user,$base_site_passwd,$base_site_name);
//données récupérées
$id_thread=trim($_REQUEST['id_thread']);
$ok_read=false;
if(mysql_query("UPDATE `threads_masters` SET `r_admin`=1 WHERE `id`='".$id_thread."'")){
$ok_read=true;
}
//Tableau du résultat
$resultat=array('ok_read'=>$ok_read);
//envoi des résultat à la page
print(json_encode($resultat));
mysql_close();
exit(); |
On est certain d'une chose c'est que les valeur que prend $id_thread existent bien dans la base et que mon appel ajax fonctionne correctement.
Mais voilà :
- la requête parfois fonctionne et parfois non (l'update de la table ne se fait pas)
- Pourtant même quand l'update ne fonctionne pas, la valeur de $ok_read retournée par ajax est bien true...
- Donc c'est ma requête qui ne passe pas malgré que la syntaxe soit ok et que la valeur $id_thread existe bien dans la base.
- Quand l'update plante pour une valeur de $id_thread, le script ensuite plantera à tout les coup pour cette valeur MAIS : si j'appelle se script avec la même valeur qui plante DEPUIS UN AUTRE NAVIGATEUR SUR UNE AUTRE MACHINE... Là ca remarche...
Donc pour x raison ma requête correcte au niveau syntaxe avec une valeur existante dans la base plante. j'ai l'impression que si ça plante une fois, mysql est en quelque sorte capable de dire "non j'ai refusé cette requête de la machine x une fois et donc je ne l'accepte plus jamais"...
je ne sais pas trop ce qui ce passe... 1 : pourquoi ca plante une première fois et 2 : si ça a planté apparament mysql s'en souvient (y'a un cache des reque^tes sous mysql ?)
C'est un peu embrouillé tout ça mais si ça parle à quelqu'un... Une aide serait la bienvenue :)