2011-06-28 4 views
0

У меня есть рутина, что я называю, чтобы сделать сервер MSSQL и MySQL соединить так:PHP сообщение об ошибке SQL изменил контекст базы данных

$mysql_aoi_conn = DoMySQLConnect('AOI'); 
$mssql_aoi_conn = DoMsSQLConnect('itf'); 

функции заключаются в следующем:

function DoMySQLConnect($pdb_name){ 
    $mysql_conn = mysql_connect('localhost', '####', '####') or die('could not connect to localhost server : ' . mysql_error()); 
    $mysqldb_conn = mysql_select_db($pdb_name, $mysql_conn) or die('could not use database ' . $pdb_name . ' : ' . mysql_error()); 
    return array("database" => $mysqldb_conn, "connection" => $mysql_conn); 
}; 
function DoMsSQLConnect($pdb_name){ 
    $mssql_conn = mssql_connect("128.251.xxx.xxx", '###', '###') or die("failed to connect to server USLONSAPP003"); 
    $mssqldb_conn = mssql_select_db($pdb_name, $mssql_conn) or die("failed to select database " . $pdb_name); 
    return array("database" => $mssqldb_conn, "connection" => $mssql_conn); 
}; 

Я m пытается использовать реализацию соединения в mssql_query и mysql_query, чтобы рассказать мои запросы, какое соединение использовать, но я получаю сообщение об ошибке. Вот один из моих запросов:

$login_res = mssql_query("SELECT * 
          FROM ITF_USER 
          WHERE ITF_LOGIN = '" . $lcUserName . "'", $mssql_aoi_conn['connection']) 
          or die("failed to query ITF_USER: \n" . mssql_get_last_message()); 

Это умирает с mssql_get_last_message() из: Changed database context to 'itf'., который на самом деле не ошибка. Может ли кто-нибудь сказать мне, если я использую этот вариант запроса неправильно?

ответ

0

После некоторого исследования кажется, что mssql_query() не поддерживает параметр link_identifier и, следовательно, ломается (хотя и не имеет допустимой ошибки для отладки). Удаление идентификатора ссылки для mssql_query и сохранение его в моем документе для любого mysql_query() позволяет мне использовать команды mssql_query() и mysql_query() в моем скрипте.

+2

sadmicrowave: Как удалить идентификатор ссылки для mssql_query? – Nathan

0

Даже вы решили свою проблему, я столкнулся с аналогичной ошибкой «измененный контекст базы данных» при использовании функции mssql_exec() в PHP. Это, кажется, фиксируется установкой:

sqlsrv_configure ("WarningsReturnAsErrors" , 0); //OFF 
sqlsrv_configure ("LogSeverity" , 1); //SQLSRV_LOG_SEVERITY_ERROR 

До этого я использовал [БАЗ] [DBO] [TABLE], чтобы предотвратить получение много сообщений о таких ошибках/предупреждения...

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