Привет, я новичок в этом, и я хотел бы спросить кого-то здесь, кто является экспертом в области codeigniter framework и PHP.
Как я могу использовать драйверы mysqli в собственном запросе php? Например.
Мой код:
Модель
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 ожидает не менее двух параметров». Есть ли способ в codeigniter передать ссылку на первый параметр mysqli_query (), как описано в документации php.net http://php.net/manual/en/mysqli.query.php
идти к:
yourproject/application/config/database.php
изменение:
$db['default']['dbdriver'] = 'mysql';
с:
$db['default']['dbdriver'] = 'mysqli';
Вы должны изменить содержимое файла DB_driver.php
в системном каталоге codeigniter. Идти к:
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']); }
Откройте файл « database.php » в папке « / application / config / »
Переместить в линию
$db['default'] = array('dbdriver' => '')
Измените его, как показано ниже.
$db['default'] = array('dbdriver' => 'mysqli')