如何在CodeIgniter中使用MySQLi驱动程序


How to use MySQLi Driver in CodeIgniter

如何在PHP本地查询中使用mysqli驱动程序?

例如

。我的代码:

模型
class Home_model extends CI_Model{
    public function getusers(){
        $q = "SELECT * FROM `users`";
        return $r = mysqli_query($q);
    }
}

控制器:

class Home extends CI_Controller{
    public function iterateuser(){
        while($row = mysqli_fetch_object($this->Home_model->getusers())) {
            echo $row->username;
        }
    }

我上面的代码有一个错误,说:

mysqli_query期望至少2个参数

CodeIgniter中是否有一种方法可以传递mysqli_query()第一个参数上的链接,如php.net文档http://php.net/manual/en/mysqli.query.php

所述

go to:

yourproject/application/config/database.php

改变:

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

:

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

您应该更改codeigniter系统目录中文件DB_driver.php的内容。去:

system/database/DB_driver.php

并更改以下行:

var $dbdriver = 'mysql'; 

:

var $dbdriver = 'mysqli'; 

这里是DB_driver.php的提取

 * MySQLi Database Adapter Class - MySQLi only works with PHP 5
 *
 * Note: _DB is an extender class that the app controller
 * creates dynamically based on whether the active record
 * class is being used or not.
 *
 * @package        CodeIgniter
 * @subpackage    Drivers
 * @category    Database
 * @author        ExpressionEngine Dev Team
 * @link        http://ellislab.com/codeigniter/user-guide/database/
 */
class CI_DB_mysqli_driver extends CI_DB {
    var $dbdriver = 'mysqli'; 

一旦指定了'mysqli',可以使用下面的函数获取mysqli。例如,mysqli_real_escape_str等:

function get_mysqli() { 
    $db = (array)get_instance()->db;
    return mysqli_connect('localhost', $db['username'], $db['password'], $db['database']);
}

打开'/application/config/'文件夹下的'database.php'文件

移动到

$db['default'] = array('dbdriver' => '')

修改如下

$db['default'] = array('dbdriver' => 'mysqli')