2016-04-24 13 views
11

I zostały zaktualizowane moją wersję 2.2.4 z CodeIgniter krok po kroku do 3.0.6 i pojawia się błąd:błąd CodeIgniter: Zadzwoń do niezdefiniowanej funkcji 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 

właśnie zastąpił mój indeks. plik php i katalog systemowy z nowym i wprowadził kilka zmian w mojej aplikacji zgodnie z samouczkiem.

i to jest główny kontroler:

class Main extends CI_Controller { 

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

Co powoduje ten problem ?!

I this is the link samouczka.

+4

mysql_ * jest nieaktualny z php 5 i usunięty z php 7. przełącz na mysqli_ * lub PDO –

+0

Dodatkowo prześlij link do tego samouczka. – SaidbakR

+0

Teraz pojawia się problem z codeigniter lub używam wycofanego mysql w moim kodzie? – Afshin

Odpowiedz

3

Dzięki Anant

dochodzę do wniosku:

ja całkowicie zmieniło mój stary plik database.php w folderze config na nowy:

Od:

$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; 

Do:

$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 
); 

Błąd zniknął!

+0

Twoja wartość konfiguracyjna 'dbdriver' jest pusta, powinieneś użyć' $ db ['default'] ['dbdriver'] = 'mysqli'; ' – DotBot

+0

Witam, już zastosowałem twoje rozwiązanie, ale błąd nadal występuje. jakiekolwiek inne rozwiązanie? – 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.

Wydaje się, że używasz przestarzałej "mysql"dbdriver. Zlokalizuj plik config/database.php i zmienić dbdriver używać mysqli:

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

Jeśli błąd się stało, gdy host w sieci, upewnij się, aby ustawić właściwą Wersja PHP (jeden twój use CI).

Powiązane problemy