Requete SQL anormalement longue
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:
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.
Code:
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();
} |
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:
Citation:
Fatal error: Maximum execution time of 100 seconds exceeded
l'erreur est identifiée à la ligne suivante:
Code:
return $result->fetchAll();
Ma façon d'utiliser PDO et les requêtes préparées est-elle correcte? Y a-t il des optimisations à faire?
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 =)