2016-04-24 2 views
11

Я обновил свой CodeIgniter версии от 2.2.4 шаг за шагом к 3.0.6 и я получаю сообщение об ошибке:Codeigniter ошибка: Вызов неопределенной функции 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 

Я просто заменил мой индекс. php и системный каталог с новым и внес некоторые изменения в мое приложение в соответствии с учебником.

и это Главный контроллер:

class Main extends CI_Controller { 

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

Что вызывает проблему ?!

И this is the link учебника.

+4

mysql_ * устарел из php 5 и удален из php 7. переключиться на mysqli_ * или PDO –

+0

Кроме того, отправьте ссылку на этот учебник. – SaidbakR

+0

Теперь проблема связана с codeigniter или я использую устаревший mysql в своем коде? – Afshin

ответ

3

Благодаря Anant

я пришел к выводу:

Я полностью изменил мой старый файл database.php в папку конфигурации с новым:

От:

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

Кому:

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

И ошибка исчезла!

+0

Значение конфигурации 'dbdriver' пуст, вы должны использовать' $ db ['default'] ['dbdriver'] = 'mysqli'; ' – DotBot

+0

Привет, я уже применяю ваше решение, но ошибка все еще появляется. любое другое решение? – 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.

Похоже, что вы используете устаревшую "mysql"dbdriver. Найдите файл config/database.php и изменить dbdriver использовать mysqli:

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

Если произошло это ошибка, когда вы размещаете в Интернете, убедитесь, чтобы установить правильную версию PHP (один ваш использовать CI).

Смежные вопросы