php sql错误消息更改了数据库上下文

时间:2011-06-28 19:16:05

标签: php mysql sql-server error-handling

我有一个例程,我打算像这样做一个mssql和mysql服务器连接:

$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 );
};

我正在尝试使用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'.这不是一个真正的错误。如果我使用此查询选项错误,有人可以告诉我吗?

2 个答案:

答案 0 :(得分:0)

经过一些研究后,似乎mssql_query()不支持link_identifier选项,因此会中断(尽管没有有效的调试错误)。删除mssql_query的链接标识符并将其保存在我的文档中以用于任何mysql_query()允许我在整个脚本中使用mssql_query()和mysql_query()命令。

答案 1 :(得分:0)

即使你已经解决了问题,我也面临着类似的错误"更改了数据库环境"在PHP中使用mssql_exec()函数时。似乎通过设置来修复:

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

在此之前,我正在使用[数据库]。[dbo]。[TABLE]以防止收到大量有关此类错误/警告的报告。