Sto provando a utilizzare il driver MySQL PDO nell'applicazione CodeIgniter. Questo è il mio config database:CodeIgniter Driver database PDO non funzionante
$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = 'testdatabase';
$db['default']['dbdriver'] = 'pdo';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
Tuttavia, sto ottenendo questo errore quando carico un controller:
Fatal error: Uncaught exception 'PDOException' with message 'invalid data source name' in C:\xampp\htdocs\testsite\system\database\drivers\pdo\pdo_driver.php:114
Ho controllato la fonte dei dati utilizzando die($this->hostname);
in pdo_driver.php
e sta venendo fuori come :
localhost;dbname=testdatabase
quindi sta ottenendo il nome corretto del database. Il database esiste e io ho MySQL in esecuzione.
Cosa potrebbe andare storto qui? Grazie.
Sidenote: Recentemente ho letto il changelog della nuova versione (2.1.1) e ci sono alcune correzioni per quanto riguarda il driver PDO. Potresti volerlo controllare –
Martin, sto riscontrando un errore simile: 'Errore irreversibile: eccezione non rilevata 'PDOException' con messaggio 'impossibile trovare il driver' in ... ((diversi database e directory principali/file elencati)). .. syetem/database/drivers/pdo/pdo_driver.php on line 114' Sono abbastanza nuovo da non riuscire nemmeno a capire se il tuo hacker mi aiuterà. Dove e cosa ** esattamente ** hai modificato in '.../system/database/drivers/pdo/pdo_driver.php'? Sono abbastanza newbie su argomenti di configurazione. Mi sembra strano che sia necessario un hack per un file di sistema per far funzionare PDO in CI v.2.1.1, no? Perché gli altri (presumibilmente la maggior parte) non hanno bisogno dell'hack che hai menzionato? – govinda
@govinda, ho fatto il mio sulla riga 81, subito dopo 'else {...}' nel costruttore della classe. Sembra strano che tu abbia bisogno di hackerarlo, ma non ho trovato nulla di sbagliato con esso dal momento della mia correzione. –