Codeigniter: использование PDO вместо mysql - PullRequest
4 голосов
/ 15 февраля 2012

Пока Codeigniter не реализует использование PDO, есть ли способ использовать взломать его в CI, который стабилен и безопасен ? В настоящее время вместо использования драйвера db я использую модель, в которой есть весь мой код PDO, такой как prepare, fetch, execute и т. Д. Чем занимаются остальные?

Ответы [ 6 ]

6 голосов
/ 10 августа 2016
$active_group = 'default';
$query_builder = TRUE;

$db['default'] = array(
    'dsn'   => 'mysql:host=127.0.0.1; dbname=****yourdatabasename*****; charset=utf8;',
    'hostname' => '',
    'username' => 'root',
    'password' => '******yourpassword*******',
    'database' => '',
    'dbdriver' => 'pdo',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => (ENVIRONMENT !== 'production'),
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'encrypt' => FALSE,
    'compress' => FALSE,
    'stricton' => FALSE,
    'failover' => array(),
    'save_queries' => TRUE
);
6 голосов
/ 05 февраля 2014

Вкл. CodeIgniter 2.1.4 + с использованием MySQL баз данных (Отредактируйте файл: /application/config/databases.php).

Для использованияPDO:

$db['default']['hostname'] = 'mysql:host=localhost';
$db['default']['dbdriver'] = 'pdo';

Для использования MySQLi

$db['default']['hostname'] = 'localhost';
$db['default']['dbdriver'] = 'mysqli';
3 голосов
/ 19 июня 2013

Использование драйверов PDO вместо mysql требует изменения имени хоста и dbdriver следующим образом:

$db['default']['hostname'] = 'mysql:host=localhost';
$db['default']['dbdriver'] = 'pdo';
3 голосов
/ 15 февраля 2012

CI, если используется правильно, надежен и безопасен. Использование PDO, хотя и лучше, если вы не используете платформу, не обязательно принесет вам огромную пользу по сравнению с классом CI_Database.

Если это действительно вас беспокоит, вы можете поменять функции mysql_*() на эквивалентные функции mysqli_*(), но это действительно не даст заметной разницы, если вы не будете чрезмерно оптимизированы.


Следует отметить, что на самом деле это можно сделать автоматически, правильно установив тип db (как отмечает Ракета ниже).

0 голосов
/ 03 апреля 2013

Просто ответьте всем, у кого возникла такая же проблема (включая мою будущую самость), пожалуйста, убедитесь, что в зависимости от того, какой загружаемый вами dbdriver загружен в php.ini

$db['default']['dbdriver'] = 'mysqli'; //MySQLi <-- mysqli.dll
$db['default']['dbdriver'] = 'mysql'; //MySQL <-- mysql.dll
$db['default']['dbdriver'] = 'pdo'; //PDO <-- pdo.dll

Ошибка загрузкиправильный dll приведет к сбою CodeIgniter с пустой страницей.

0 голосов
/ 15 февраля 2012

try php-activerecord Я полагаю, что драйвер PDO для этого использования - это простой подключи и играй через искры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...