Comment puis-je utiliser PDO dans CodeIgniter 2?
Je voudrais utiliser PDO au lieu de la base de données intégrée-classes. Mais comment puis-je le faire? J'ai essayé de faire les modifications proposées dans un post de blog. J'ai commenté une partie de system\database\DB.php
, et a également ajouté:
$DB = new PDO(
$params['dbdriver'].':host='.$params['hostname'].';dbname='.$params['database'],
$params['username'], $params['password']);
return $DB;
Mais maintenant mon code PHP se bloque si je ne $this->load->database();
dans un Contrôleur. Alors, comment dois-je utiliser PDO et d'exécuter des requêtes de base de données à l'aide de PDO dans CodeIgniter?
J'ai aussi essayé d'utiliser ce code dans un Contrôleur:
foreach($this->db->query('SELECT * FROM users') as $row) {
print_r($row);
}
mais il ne fonctionne pas.
- Je crois qu'il y est un problème de config de votre installation. Le blog a travaillé étape par étape pour plus de 100 développeurs jusqu'à présent. Peut-être les références de base de données sont incorrectes? Sinon j'ai essayé d'ajouter quelques précisions ci-dessous. Il vous aidera à résoudre ce.
Vous devez vous connecter pour publier un commentaire.
Ou:
En savoir plus à propos de 3 AOP appels de base de données ici...
AOP Requête
AOP Exec
AOP Préparer
EDIT: Également vérifier votre
app/config/database.php
fichier pour les paramètres suivants:Message: Undefined property: Mycontroller::$db
n'ai-je pas à charger le$db
variable d'une certaine façon?return $DB;
est toujours actif -> PAS de commentaire. Aussi, avez-vous de chargement automatique de la base de données de la bibliothèque? Sinon, ajouter$this->load->database();
à votre constructeur.$this->load->database();
dans mon contrôleur, il ne fonctionne pas. J'ai "HTTP 500 Erreur Interne du Serveur".$autoload[‘libraries’] = array(‘database’);
Si oui, essayez de supprimer$this->load->database();
de tous les modèles / contrôleurs. Enfin, confirmez votre base de données d'informations d'identification sont correctes. Il y a peut être un problème de nom d'hôte, le serveur, le mot de passe et base de données.$autoload['libraries'] = array();
system\database\DB.php
comme dans le billet de blog.$autoload[‘libraries’] = array(‘database’);
2) vérifiez votre base de données les paramètres comme indiqué ci-dessus 3) re-copier et coller dans la DB.php fichier comme indiqué dans le billet de blog. Ont la vérification de plus de 100 développeurs que cela a fonctionné donc il doit y avoir une configuration manquant quelque part...$active_record = TRUE;
, mais il a changé deFALSE;
maintenant. Mais elle ne résout pas le problème. J'ai aussi changé de$autoload['libraries'] = array('database');
maintenant, mais le script PHP semblent crash lors du chargement de la base de données de la classe.