如何在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')