Codeigniter 3 не будет подключаться к базе данных MSSQL 2012 под php 5.6 в Rackspace

1

Наш сайт находится на облачных сайтах Rackspace и в настоящее время работает отлично с Codeigniter 3.0.0 на PHP 5.4.1.0 и подключается к базе данных MSSQL 2012. Rackspace находится в процессе обновления PHP с 5.4.1.0 до 5.6.7-1 и предоставил тестовые ссылки для тестирования наших сайтов в новой среде PHP. В этой тестовой среде сайт не подключается к базе данных MSSQL. Однако - никаких ошибок не бросают (что я могу найти, во всяком случае!)

Это то, что у меня есть для моей конфигурации базы данных:

$db['default'] = array(
    'dsn'   => '',
    'hostname' => 'mssqlXXXX.XXX',
    'username' => 'USERNAME',
    'password' => 'PASSWORD',
    'database' => 'DATABASE NAME',
    'dbdriver' => 'mssql',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => TRUE,
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'encrypt' => FALSE,
    'compress' => FALSE,
    'stricton' => FALSE,
    'failover' => array(),
    'save_queries' => TRUE
);

В качестве теста Rackspace также заставил меня написать тестовый контроллер. Он также терпит неудачу в Codeigniter. Код следует:

$username = "USERNAME";
$password = "PASSWORD";
$hostname = 'mssqlXXXX.XXX';
$dbname = "DATABASE";

//connection to the database
$dbcon = mssql_connect($hostname, $username, $password)or die("Unable to connect to MSSQL");
echo "Connected to MSSQL";

//select the database
mssql_select_db($dbname, $dbcon);

//SQL Select statement
$sqlselect = "SELECT * FROM INFORMATION_SCHEMA.TABLES";

//Run the SQL query
$sqlquery = mssql_query($sqlselect);

//Output the query results
while ($result = mssql_fetch_array($sqlquery) )
{
    echo "<br>";
    print_r($result);
    echo "<br>";
}

Если я возьму этот скрипт из среды Codeigniter, он будет работать.

Я попытался изменить конфигурацию базы данных codeigniter следующим образом: hostname для IP-адреса вместо рекомендуемого значения Rackspace, изменив dbdriver на sqlsrv, используя строку dsn вместо имени хоста и базы данных и используя драйвер базы данных odbc. Ничего не работает.

Я открыт для любых предложений.

РЕДАКТИРОВАТЬ ------------------------------------------------- ------------------------

Rackspace говорит: "Проблема с freetds, которая является библиотекой, используемой моим модулем mssql PHP для подключения к базам данных MSSQL, проблема, похоже, вращается вокруг, используя пароли длиной более 30 символов".

Итак - я сократил свой пароль. Описанный выше контрольный контроллер работает! Ура! НО - стандартное соединение базы данных Codeigniter не работает.

  • 0
    Какой вывод вы получили из тестового скрипта при запуске на стойке
  • 0
    Невозможно подключиться к MSSQL
Показать ещё 7 комментариев
Теги:
sql-server
codeigniter
php-5.6
rackspace

1 ответ

0

Проблема была в Rackspace, и они исправили ее.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню