Codeigniter: Как настроить соединение с SQL-сервером (2008)

Я потратил много дней на эту задачу и до сих пор не вижу конца. В прошлый день мне удалось успешно установить драйвер sqlsrv в моей среде PHP, но теперь, когда я пытаюсь подключиться, я получаю это сообщение:

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

Мои настройки в application/config/database.php определены так:

$db['dbname']['hostname'] = "ENJ01\SQLEXPRESS";
$db['dbname']['username'] = "user";
$db['dbname']['password'] = "password";
$db['dbname']['database'] = "dbname";
$db['dbname']['dbdriver'] = "sqlsrv";
$db['dbname']['dbprefix'] = "";
$db['dbname']['pconnect'] = TRUE;
$db['dbname']['db_debug'] = TRUE;
$db['dbname']['cache_on'] = FALSE;
$db['dbname']['cachedir'] = "";
$db['dbname']['char_set'] = "utf8";
$db['dbname']['dbcollat'] = "utf8_general_ci";
$db['dbname']['swap_pre'] = '';
$db['dbname']['autoinit'] = TRUE;
$db['dbname']['stricton'] = FALSE;

Что-то не так?

Вот моя конфигурация среды:

  • wampserver 2.4 x86
  • PHP 5.4.16
  • драйвер sqlsrv -> php_sqlsrv_54_ts.dll
  • Codeigniter 2.1.4

person Splact    schedule 17.10.2013    source источник


Ответы (4)


У меня была та же проблема, что и у вас год назад. Посмотрите ответы здесь, есть несколько замечательных предложений от людей: CodeIgniter MSSQL-соединение

Кроме того, несколько дней назад здесь была размещена ветка: CI для подключения к SQL SERVER - посмотрите и мой ответ там, так как он решил проблему для этого конкретного разработчика.

person Petre Pătraşc    schedule 17.10.2013
comment
Я добавил die (print_r (sqlsrv_errors (), true)); на DB_driver, как предложено в сообщении, которое вы связали, и после некоторых исправлений, следующих за сообщениями об ошибках, теперь я получил соединение !!! - person Splact; 21.10.2013
comment
@Splact Приятно слышать приятель, обязательно обновите свой вопрос ответом, который подходит вам, чтобы людям было легче ссылаться на него. - person Petre Pătraşc; 22.10.2013

Я бы написал комментарий, но у меня еще нет необходимой репутации. В любом случае...

Я заметил ваше имя хоста «ENJ01 \ SQLEXPRESS», вы пытались использовать вместо него «localhost»?

Также попробуйте установить порт 1433 с $ db ['dbname'] ['port'] = 1433;

person Julian Soro    schedule 17.10.2013
comment
Я пробовал, но ничего не изменилось. Где-то здесь, в stackoverflow, я прочитал, что я должен использовать (local), 1433 в качестве имени хоста, но там тоже ничего ... - person Splact; 17.10.2013

У меня была та же проблема, которая была решена установкой

$ db ['по умолчанию'] ['pconnect'] = FALSE;

person DanielGomes    schedule 04.03.2014

Сделайте 1. $db['default']['pconnect'] = FALSE;. Затем перейдите к 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);
}
person Soumyaranjan Rath    schedule 17.02.2017
comment
Метод db_pconnect () недоступен в sqlsrv_driver.php - person Sumit Kumar Gupta; 06.07.2019