2016-04-24 13 views
11

Ho aggiornato la mia versione codeigniter da 2.2.4 passo dopo passo per 3.0.6 ed ottengo un errore:Codeigniter error: Call to undefined function mysql_pconnect()

An uncaught Exception was encountered 

Type: Error 

Message: Call to undefined function mysql_pconnect() 

Filename: path-to-project\system\database\drivers\mysql\mysql_driver.php 

Line Number: 135 

Backtrace: 

File: path-to-project\application\controllers\Main.php 
Line: 10 
Function: __construct 

File: path-to-project\index.php 
Line: 315 
Function: require_once 

ho appena sostituito il mio indice. file php e directory di sistema con il nuovo e ho apportato alcune modifiche nella mia applicazione in base al tutorial.

e questo è il controller principale:

class Main extends CI_Controller { 

    function __construct() 
    { 
     parent::__construct(); 
     $this->load->model('main_model'); 
    } 
} 

Che cosa causa il problema ?!

E this is the link del tutorial.

+4

mysql_ * è deprecato da php 5 e rimosso da php 7. passare a mysqli_ * o PDO –

+0

Inoltre, si prega di inviare un collegamento a tale tutorial. – SaidbakR

+0

Ora, il problema si presenta con il codeigniter o sto usando il mysql deprecato nel mio codice? – Afshin

risposta

3

Grazie alla Anant

io vengo a una conclusione:

ho completamente cambiato la mia vecchia lima database.php nella cartella config con quello nuovo:

Da:

$db['default']['hostname'] = 'localhost'; 
$db['default']['username'] = ''; 
$db['default']['password'] = ''; 
$db['default']['database'] = ''; 
$db['default']['dbdriver'] = ''; 
$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; 

A:

$db['default'] = array(
    'dsn' => '', 
    'hostname' => '', 
    'username' => '', 
    'password' => '', 
    'database' => '', 
    'dbdriver' => 'mysqli', 
    'dbprefix' => '', 
    'pconnect' => FALSE, 
    'db_debug' => (ENVIRONMENT !== 'production'), 
    'cache_on' => FALSE, 
    'cachedir' => '', 
    'char_set' => 'utf8', 
    'dbcollat' => 'utf8_general_ci', 
    'swap_pre' => '', 
    'encrypt' => FALSE, 
    'compress' => FALSE, 
    'stricton' => FALSE, 
    'failover' => array(), 
    'save_queries' => TRUE 
); 

E l'errore è passato!

+0

Il valore di configurazione 'dbdriver' è vuoto, dovresti usare' $ db ['default'] ['dbdriver'] = 'mysqli'; ' – DotBot

+0

Ciao, ho già applicato la tua soluzione ma l'errore si sta ancora verificando. qualche altra soluzione? – Jjsg08

33

Deprecated features in PHP 5.5.x:

The original MySQL extension is now deprecated, and will generate E_DEPRECATED errors when connecting to a database. Instead, use the MySQLi or PDO_MySQL extensions.

sembra che si sta utilizzando il deprecato "mysql"dbdriver. Individuare il file config/database.php e cambiare dbdriver utilizzare mysqli:

$db['default']['dbdriver'] = 'mysqli'; 
0

Se questo errore è accaduto quando si ospita il web, assicuratevi di impostare la corretta versione di PHP (quello per l'utilizzo da CI).

Problemi correlati