web-dev-qa-db-fra.com

Comment utiliser le pilote MySQLi dans Codeigniter

Bonjour, je suis un peu novice dans ce domaine et je voudrais poser la question à quelqu'un ici qui est un expert du framework codeigniter et de PHP.

Comment utiliser les pilotes mysqli dans les requêtes natives php? Par exemple.

Mon code:

Modèle

class Home_model extends CI_Model{

public function getusers(){
$q = "SELECT * FROM `users`";
return $r = mysqli_query($q);
}

}

Manette:

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

}

Mon code ci-dessus est une erreur, signalant que "mysqli_query attend au moins 2 paramètres". Existe-t-il un moyen dans codeigniter de passer le lien sur le premier paramètre mysqli_query () comme décrit dans la documentation php.net http://php.net/manual/fr/mysqli.query.php

8
blessedthang

aller à:

yourproject/application/config/database.php

changement:

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

avec:

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

Une fois que vous avez spécifié 'mysqli', vous pouvez utiliser la fonction suivante pour obtenir mysqli. Par exemple, mysqli_real_escape_str, etc.:

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

Vous devez modifier le contenu du fichier DB_driver.php dans votre répertoire système Codeigniter. Aller à:

system/database/DB_driver.php

Et changez la ligne suivante:

var $dbdriver = 'mysql'; 

à :

var $dbdriver = 'mysqli'; 

voici une extraction du 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'; 
2
Mostafa Talebi

Ouvrez le fichier ' database.php ' sous le dossier '/application/config/'

Déplacer à la ligne

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

Modifiez-le comme ci-dessous

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