Bonjour,
Je voudrai améliorer mon code car j'ai une requête SQL qui est située à l'intérieur d'une boucle.
Je voudrai passer par une requête préparée afin que l'exécution soit plus rapide mais j'ai quelques problèmes.
Voici le code original :
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 <?php for ($iSemaine= 1; $iSemaine<=$nbSemainesAffichees; $iSemaine++){ // ... $sqlhtrav = "SELECT sum(nbrehtravaillees) FROM ".$table["intervention"]." WHERE id_categorie ='$idcategorie' AND('$debutSemaine'<= datedebut && '$finSemaine'> datedebut) AND id_utilisateur='$utilisateur' "; $reshtrav = mysql_query($sqlhtrav)or die ('Erreur SQL'.$reshtrav.'<br>'.mysql_error()); //... } ?>
J'ai essayé de le remplacer par ce qui suit :
Mais j'ai l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <?php $sqlTrav = "PREPARE req FROM 'SELECT sum(nbrehtravaillees) FROM intervention WHERE id_categorie =`$idcategorie` AND id_utilisateur=`$utilisateur` AND `dateDebut` BETWEEN ? AND ?'"; mysql_query($sqlTrav); for ($iSemaine= 1; $iSemaine<=$nbSemainesAffichees; $iSemaine++){ //... $sqlTrav = "SET @debut_semaine=".$debutSemaine.", @fin_semaine=".$finSemaine.""; mysql_query($sqlTrav); $sqlcontrat = "EXECUTE req USING @debut_semaine, @fin_semaine"; $reshtrav = mysql_query($sqlcontrat)or die ('Erreur SQL'.$reshtrav.'<br>'.mysql_error()); //... } ?>
Erreur SQL
Unknown prepared statement handler (req) given to EXECUTE
Partager