Как подключиться к базе данных SQL Server в CodeIgniter? - PullRequest
3 голосов
/ 02 апреля 2012

Как мне подключиться к базе данных SQL Server в CodeIgniter?

В настоящее время я запускаю приложение в CodeIgniter и хочу использовать SQL Server.

$active_group = 'default';
$active_record = TRUE;

$db['default']['hostname'] = '#.#.#.27';
$db['default']['username'] = '@@@@@@';
$db['default']['password'] = '@@@@@@@@@';
$db['default']['database'] = '$$$$$$$$$$$$$';
$db['default']['dbdriver'] = 'mssql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

После автоматической загрузки базы данных, она показывает только пустую белую страницу без ошибок. Подскажите, пожалуйста, какие еще изменения я должен внести в работу с базой данных SQL Server?

#autoload.php#
$autoload['libraries'] = array('database');

Ответы [ 7 ]

3 голосов
/ 24 декабря 2013

Я не смог заставить его работать с поддерживаемым драйвером mssql, поэтому я использовал sqlsrv

Я обычно соединяюсь с ip, порт как hostname, поэтому я изменил это.

pconnect также вызывал у меня проблемы.Я установил FALSE, и он начал работать.

Вот конфигурация, которую я получил для работы:

$db['default']['hostname'] = '127.0.0.1,1433';
$db['default']['username'] = 'username1';
$db['default']['password'] = 'secretpassword';
$db['default']['database'] = 'databasename';
$db['default']['dbdriver'] = 'sqlsrv';
$db['default']['pconnect'] = FALSE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
3 голосов
/ 17 ноября 2012

используйте use $ db ['default'] ['dbdriver'] = 'sqlsrv';
и установите драйверы Microsoft для PHP для SQL Server в Windows

Подключение CodeIgniter MSSQL

0 голосов
/ 23 июня 2017

Выполните следующие простые шаги:

  1. Установите экземпляр с включенным «смешанным режимом».Если ваши неуверенные часы , это - видео начинается с правильной последовательности.Может быть, это хорошая идея, чтобы посмотреть его полностью.

  2. изменить конфигурацию базы данных в ' ... ci / application / config / database.php '

    $active_group = 'default';
    $query_builder = TRUE;
    
    $db['default'] = array(
        'dsn' => '',
        'hostname' => 'localhost',
        'username' => 'sa', // <- use 'sa'
        'password' => 'THE_PASSWORD_YOU_SET_ON_INSTALL', // "mixed-mode"
        'database' => 'ci',
        'dbdriver' => 'sqlsrv',
    //  'dbdriver' => 'mysqli', // <- my old "non-server" config (approx. 70% slower)
        '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
    );
    

enter image description here

0 голосов
/ 22 декабря 2014

Я только что решил эту проблему.И я подключался к MSSQL, размещенному в Microsoft Azure

. После нескольких исследований в Интернете были выполнены следующие шаги:

database.cfg:

$db['default']['hostname'] = 'XXXXXXX.database.windows.net';
$db['default']['username'] = 'username';
$db['default']['password'] = 'password';
$db['default']['database'] = 'databasename';
$db['default']['dbdriver'] = 'sqlsrv';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = FALSE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

В основном dbdriverpcconnect и имя хоста вы должны правильно настроить.Остальные обычны.Получите имя хоста из вашей базы данных Azure.

И я также изменил пару системных файлов, так как слышал, что были проблемы с драйвером БД.

system / database / drivers / sqlsrv / sqlsrv_driver.php

function db_pconnect()
    {
        //$this->db_connect(TRUE);
        return $this->db_connect(TRUE);
    }

и

function affected_rows()
{
    //return @sqlrv_rows_affected($this->conn_id);
    return @sqlsrv_num_rows($this->result_id);
}

Мне удалось подключиться к базе данных и создать приложение базы данных.

Надеюсь, это поможет кому-то нуждающемуся:)

0 голосов
/ 03 декабря 2013

это тот же процесс, что и MySQL. используйте ту же конфигурацию, которая указана ниже:

$ active_group = 'default'; $ active_record = TRUE;

$ db ['default'] ['hostname'] = 'xxx.xx.xx.xx \ SQLEXPRESS';

$ db ['default'] ['username'] = 'sa';

$ db ['default'] ['password'] =

XXXXXXX '; $ db ['default'] ['database'] = 'xxxxx';

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

$ db ['default'] ['dbprefix'] = '';

$ db ['default'] ['pconnect'] = TRUE;

$ db ['default'] ['db_debug'] = TRUE;

$ db ['default'] ['cache_on'] = FALSE;

$ db ['default'] ['cachedir'] = '';

$ db ['default'] ['char_set'] = 'utf8';

$ db ['default'] ['dbcollat'] => 'utf8_general_ci';

$ db ['default'] ['swap_pre'] = '';

$ db ['default'] ['autoinit'] = TRUE;

$ db ['default'] ['stricton'] = FALSE;

В вашей модели используйте то же, что и

функция выбора агента ($ table, $ agent) {

$ field = $ this-> db-> get_where ($ table, array ('var1') => $ Агент, 'день (дата)' => дата ( 'd')));

  $fields=$field->result();

  return $fields;
}
0 голосов
/ 03 апреля 2012

Ваш код конфигурации в порядке. Дальнейшее чтение здесь

Если вы считаете, что ошибки не отображаются, перейдите к index.php и на верхнем месте следующего фрагмента, чтобы показать ошибки.

error_reporting(E_ALL);

Другое, затем проверьте, работает ли служба MSSQL и доступна ли она. Может быть, создать простое .php и попробовать установить соединение с обычными кодами .

Файл не CI Нечто подобное,

<?php
$server = 'YOURPC\SQLEXPRESS';
$link = mssql_connect($server, 'user', 'pass');

if (!$link) {
    die('Something went wrong while connecting to MSSQL');
}
?>
0 голосов
/ 03 апреля 2012

Как насчет этого?Я видел, как это работает на некоторых серверах.Это сервер Windows?

$db['default']['dbdriver'] = "odbc";
$db['default']['dbprefix'] = "";
$db['default']['pconnect'] = FALSE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE; 

дальнейшее чтение

надеюсь, это поможет

...