2016-04-24 79 views
11

我從2.2.4一步一步地3.0.6更新了我的笨版本,我得到一個錯誤:笨錯誤:調用未定義的函數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

由於阿南特

我得出一個結論:

我徹底改變在config文件夾我的老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

如果在承載Web,請務必設置正確的PHP版本(一個你的CI使用)這個錯誤發生。

相關問題