Bonjour,
Pour permettre l'interaction entre une base de donnée MYSQL et mon code PHP, j'ai utilisé PDO.
J'ai donc par exemple une procédure stockée dans ma base MYSQL qui a cette forme:
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT id, cpt1_b, cpt2_b, cpt3_b, cpt4_b FROM borne, plan WHERE bg_b=bg AND bg_pr=bg AND module_b=module AND equipement=no AND carte_b=carte AND date_b=jour AND (cpt1_b>=1 OR cpt2_b>=1 OR cpt3_b>=1 OR cpt4_b>=1)
Dans mon fichier PHP, j'ai écris le code suivant et appel ma procédure stockée à l'aide d'une requête préparée.
Pour un jour donné, quand il y a peu de lignes dans ma table "borne", l'affichage se fait correctement. Mais lorsque le nombre de lignes atteint les 3000 l'erreur suivante se produit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 public function borneComm($bg,$jour) { $db = Database::getInstance(); //requête SQL $query = 'borneComm(:bg,:jour)'; $result = $db->prepare($query); $result->setFetchMode(PDO::FETCH_CLASS,"Borne"); $result->execute(array( ':bg' => $bg, ':jour' =>$jour )); return $result->fetchAll(); }
l'erreur est identifiée à la ligne suivante:Fatal error: Maximum execution time of 100 seconds exceededMa façon d'utiliser PDO et les requêtes préparées est-elle correcte? Y a-t il des optimisations à faire?
Code : Sélectionner tout - Visualiser dans une fenêtre à part return $result->fetchAll();
J'ai augmenté le temps d’exécution autorisé dans mon fichier de configurations PHP mais celui-ci est toujours dépassé et la requête est exécutée très rapidement sur la base de données.
Dans l'attente d'une réponse de votre part =)
Partager