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.

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();
}
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:
Fatal error: Maximum execution time of 100 seconds exceeded
l'erreur est identifiée à la ligne suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 =)