2011-12-05 7 views
0

Si je charge 5 modèles dans un contrôleur, la connexion à la base de données sera-t-elle établie pour tous les modèles séparément?Problème de chargement du modèle avec CodeIgniter

Parce qu'il crée un problème de blocage du serveur, en raison de l'ouverture de plusieurs ports pour la connexion à la base de données pour chaque modèle.

S'il y a une solution?

Merci d'avance.

+2

Êtes-vous sûr à 100% que c'est la raison? –

+0

Avez-vous essayé d'exécuter vos requêtes dans un client mysql avant de les essayer dans codeigniter? – Catfish

Répondre

0

Non, codeigniter doit établir une nouvelle connexion de base de données pour chaque modèle que vous chargez. Comment avez-vous dessiné la conclusion Codeigniter ouvre plusieurs ports? Cela ne devrait pas être possible

0

Non, CodeIgniter utilise le modèle singleton, ce qui signifie que vous ne pouvez créer qu'une seule instance de chaque modèle/bibliothèque (ou une connexion à une base de données à la fois).

Le problème se situe probablement dans les requêtes de votre base de données - elles peuvent ralentir les réponses. Utilisez-vous une connexion persistante dans la configuration de la base de données?

Il y a beaucoup de questions, mais pas beaucoup de code de votre part, donc nous pouvons seulement deviner. Etes-vous sûr à 100% que le problème est le suivant?

0

Je n'ai jamais eu le chargement de cette quantité de modèles, aussi parce que CI fonctionne comme un singleton, donc l'objet est toujours un, et les classes ne sont pas rechargées/ré-instanciées si une instance existe déjà.

Si vous avez des probelms avec votre base de données, essayez de mettre pconnect (connexion persistante) à FALSE dans config/database.php. Vous pouvez également activer la mise en cache, cela peut vous aider.

$db['test']['pconnect'] = FALSE; 
$db['test']['db_debug'] = TRUE; 
$db['test']['cache_on'] = TRUE; 
Questions connexes