Это реальный, "настоящий" код, который вы скопировали и вставили, или вы его набрали здесь?
Второй параметр в mssql_select_db () - это ссылка на базу данных, это ресурс.Т.е. $this->_DB_Connection
является либо ресурсом, либо @mssql_select_db($param_Database, $this->_DB_Connection);
всегда завершится неудачей.
Если $this->_DB_Connection
является ресурсом, то вы передаете ресурс в strcmp($this->_DB_Connection, $param_Database)
и неявное преобразование в строку будеткак resource #3
.Таким образом, если ваша база данных не называется resource #3
, ваш strcmp () всегда будет терпеть неудачу.
Сделайте свой выбор, какая из двух функций всегда будет с ошибкой, с предоставленным кодом.
Чтобы этот подход работал, сохраните имя выбранной в данный момент базы данных в свойстве объекта.и использовать его для сравнения.
protected $_Current_Database = null;
[...]
if ( 0!==strcmp($this->_Current_Database, $param_Database) ) {
$this->_DB_Selected = @mssql_select_db($param_Database, $this->_DB_Connection);
if ( $this->_DB_Selected ) {
$this->_Current_Database = $param_Database;
}
else { // select_db failed.
$msg = mssql_get_last_message();
// do something with $msg here, e.g. echo 'mssql message: ', $msg;
}
}
[...]