2015-08-27 2 views
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. Однако - никаких ошибок не выбрасываются (! Что я могу найти, во всяком случае)Codeigniter 3 не будет подключаться к базе данных MSSQL 2012 под php 5.6 на Rackspace

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

$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. Ничего не работает.

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

EDIT ------------------------------------------- ------------------------------

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

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

+0

Какой результат вы получили от тестового скрипта при запуске на rackspace – RiggsFolly

+0

Не удалось подключиться к MSSQL – Junosapien

+0

Установили ли они драйверы сервера sql и т. Д.? Или вы должны это делать? – RiggsFolly

ответ

Смежные вопросы