2017-01-07 14 views
-1

Ich habe diese Fehler in Codeigniter.Schwerwiegender Fehler: Uncaught Fehler: Aufruf zu undefinierter Funktion mysql_pconnect()

Fatal error: Uncaught Error: Call to undefined function mysql_pconnect() in 

C:\xampp1\htdocs\CI\system\database\drivers\mysql\mysql_driver.php:92 Stack trace: #0 C:\xampp1\htdocs\CI\system\database\DB_driver.php(116): CI_DB_mysql_driver->db_pconnect() #1 C:\xampp1\htdocs\CI\system\database\DB.php(149): CI_DB_driver->initialize() #2 C:\xampp1\htdocs\CI\system\core\Loader.php(347): DB(Array, NULL) #3 C:\xampp1\htdocs\CI\application\models\usermodel.php(7): CI_Loader->database() #4 C:\xampp1\htdocs\CI\application\controllers\userscontroller.php(9): UserModel->getUser() #5 C:\xampp1\htdocs\CI\system\core\CodeIgniter.php(360): UsersController->index() #6 C:\xampp1\htdocs\CI\index.php(202): require_once('C:\xampp1\htdoc...') #7 {main} thrown in C:\xampp1\htdocs\CI\system\database\drivers\mysql\mysql_driver.php on line 92


Modellklasse

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class UserModel extends CI_Model 
{ 
    public function getUser() 
    { 
     $this->load->database(); 
     $query = $this->db->query("SELECT * from user_accounts");  
     return $query->result(); 
    } 
} 

View-Klasse

<!DOCTYPE html> 
    <html> 
    <head> 
     <title>User Accounts</title> 
    </head> 
    <body> 
     <?php foreach($users as $user): ?> 
    <table> 
     <tr> 
      <td><?= $user->firstname; ?></td> 
      <td><?= $user->lastname; ?></td> 
     </tr> 
    <?php endforeach; ?> 
    </table> 
    </body> 
    </html> 

Controller-Klasse

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class UsersController extends CI_Controller 
{ 
    public function index() 
    { 
     $this->load->model('usermodel'); 

     $data['users'] = $this->usermodel->getUser(); 

     $this->load->view('user_list',$data); 
    } 
} 

database.php

$active_group = 'default'; 
$active_record = TRUE;  
$db['default']['hostname'] = 'localhost'; 
$db['default']['username'] = 'root'; 
$db['default']['password'] = ''; 
$db['default']['database'] = 'ci_users'; 
$db['default']['dbdriver'] = 'mysql'; 
$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; 
+1

Welche Version von PHP verwenden Sie? Die mysql_-Funktionen wurden in PHP 5.5 veraltet und in PHP 7 vollständig entfernt. Auch welche Version von CodeIgniter? – Chris

+1

Welche Version von CI? – user4419336

+0

PHP Version 7.0.13 und CodeIgniter Version 2.2.6 –

Antwort

2

In PHP5.6 oder höhere Versionen, mysql_ Funktionen sind veraltet und vollständig entfernt. Versuchen Sie es mit mysqli_functions.

+1

Oder versuchen Sie PDO. ;). –

+0

vielen Dank Alexander Bezpuatov funktioniert gut für mich vielen Dank. –

7

Da Sie Codeigniter verwenden, verwenden Sie höchstwahrscheinlich ihre Datenbankklasse und -treiber, sodass Sie die MySQL-Funktionen von PHP nicht direkt verwenden.

daher alles, was Sie tun müssen, ist

ändern
$db['default']['dbdriver'] = 'mysql'; 

zu

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

sagen Sie einfach ändern diese $ db ['default'] ['dbdriver'] = 'mysql'; 'zu diesem' $ db ['default'] ['dbdriver'] = 'mysqli'; ' –

+0

Ich habe das Extra hinzugefügt Info, damit das OP versteht, warum die andere Antwort korrekt ist, aber nicht für seine spezielle Situation funktionieren wird. – twistedpixel

+0

Ihre Antwort ist korrekt, aber es ist zu verwirrend der Kern der Bedeutung. Fügen Sie Ihre Erklärung hinzu und fügen Sie etwas hinzu, das ich oben hinzugefügt habe. –

Verwandte Themen