簡體   English   中英

錯誤:mssql_connect():無法連接到服務器:

[英]Error: mssql_connect(): Unable to connect to server:

總是使用下面的代碼連接到數據庫的某些cron函數突然開始失敗可能是什么問題?

看來它無法連接到數據庫。 憑據很好,但沒有更改。 TestConnect是一個被稱為然后我要連接到我的數據庫的類。 我這樣使用它:

$test = new \TestConnect(true);

現在,據我所知,該類文件已找到並且正在運行。

class TestConnect
{

private $_server = 'test';
private $_username = 'test';
private $_password = 'password';
private $_database = 'database';
private $_query = null;
private $_handle = null;
private $_handle_db = null;
private $_result = null;

public function __construct($connect = null, $query = null)
{
    if ($connect)
    {
        $this->connect();
    }

    if ($query)
    {
        $this->query($query);
    }
}

public function connect()
{
    ini_set('memory_limit','1024M');
    putenv("FREETDSCONF=/etc/freetds.conf");

    if ($this->_handle)
    {
        return $this->_handle;
    }
    else
    {
        if ( ! $this->_handle = mssql_connect($this->_server, $this->_username, $this->_password))
        {
            throw new Exception($this->get_error_message());
        }

        if ( ! $this->_handle_db = mssql_select_db($this->_database, $this->_handle))
        {
            throw new Exception($this->get_error_message());
        }
    }
}
}

現在最有趣的是,如果我把$ test = new \\ TestConnect(true); 進入某種函數並從另一個函數調用它,似乎可以正常工作。 但是如果我調用$ test = new \\ TestConnect(true); 從完全相同的功能-它不起作用。

它是這樣工作的:

private function getDatabase(){
    $test = new \TestConnect(true);
    $test->query("SELECT id as id FROM table");
    return $test->fetch_assoc($trim = true);
}

我將這個函數稱為:

$users = self::getDatabase();

這樣,連接有效,我得到了所有數據。 但是,如果我使用沒有任何功能的代碼,則無法正常工作。 這怎么可能?

發現斷開連接功能引起了問題。 在所有功能和數據查詢之后,將代碼更改為僅與數據庫斷開一次。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM