2015-09-16 16 views
5

Stiamo lavorando con 2 database, il nostro database locale e un database esterno. Ma ora il nostro database esterno è inattivo (siamo ancora in fase di sviluppo quindi è bello che ci siamo imbattuti in questo problema) e ora tenta di connettersi al database esterno per 30 secondi, come posso cambiare il timeout della connessione del Database a qualcosa di simile 1 - 2 secondi? Sto usando Codeigniter con i driver PDO sui miei database. C'è qualcuno con una soluzione pulita per questo problema?Imposta timeout connessione database in CodeIgniter 3

+0

Prova questo http://php.net/manual/en/mysql.configuration.php#ini.mysql.connect-timeout – Scorpion

+0

Non sto utilizzando mysql @Scorpion – Jordy

+0

Hai provato a impostare 'PDO :: ATTR_TIMEOUT'? ? Qual è il tuo database però? – VolenD

risposta

4

Non è una caratteristica documentata, ma è possibile farlo dal file di database di configurazione (application/config/database.php) aggiungendo options impostazione ad esempio:

$db['default']['options'] = array(PDO::ATTR_TIMEOUT => 5); 

Le altre impostazioni che utilizzano lo stesso meccanismo interno (ad esempio PDO::MYSQL_ATTR_INIT_COMMAND set con $db['default']['stricton'] e PDO::MYSQL_ATTR_COMPRESS impostato con $db['default']['compress']) non sono interessati da questo.

Se si vuole scavare più a fondo e verificare quali sono impostate le opzioni, è possibile accedere in $this->optionsdb_connect funzione nel system/database/drivers/pdo/pdo_driver.php e controllare anche database/drivers/pdo/subdrivers/pdo_mysql_driver.php.

+2

Esattamente quello che stavo cercando, funzionante come un fascino! Molte grazie!! Non posso ancora darti la taglia, ma lo farò una volta che posso. – Jordy