2010-11-03 24 views
0

我想通過mysqli建立一個PHP(5.2.6)/ MySQL連接。我在這個連接中缺少什麼?

error_log(sprintf('Querying %s:%s (%s) as %s/%s', DBHOST, DBPORT, DBNAME, DBUSER, DBPASSWORD)); 

$mysqli = @new mysqli(DBHOST, DBUSER, DBPASSWORD, DBNAME, DBPORT); 

if(!$mysqli) { 
    error_log('Unable to establish a connection to ' . DBHOST . '.' . DBNAME . ': ' . mysqli_connect_error()); 
    exit('Unable to connect to the db.'); 
} 
else { 
    error_log('--> mysqli connection established'); 
} 

... more stuff ... 

這段代碼的結果是初始error_log發生(這驗證了常量正確定義),但沒有別的。沒有。據我所知,一切都停下來。無法連接消息,無連接建立消息。根本不值一提。我可以使用由常量定義的參數(從日誌打印複製並粘貼)直接連接到MySQL。

我已閱讀過5.2.9版本之前版本的PHP中的錯誤,並且我嘗試了各種檢測錯誤的方法,但沒有任何更改。一切都停滯不前,我開始失去思想,試圖弄清楚我還能做些什麼。

有沒有人見過這個? MySQLi確實似乎已經安裝 - 通過它在phpinfo()的輸出中的存在以及通過對function_exists(mysqli_connect)的測試進行驗證。我是否錯過了明顯的東西,因爲我太專注於細節?

任何想法將不勝感激。

UPDATE

當我說,「我已經試過檢測出錯誤不同的方式」,我應該更清楚。沒有其他變體包含帶「@」的靜音輸出。請不要專注於此。這只是包含在我最後一次基於PHP文檔中讀取的嘗試中。

+2

從'@ new'刪除'@'併發布任何PHP錯誤或警告。 – 2010-11-03 14:50:21

+0

這就是我嘗試各種其他方式的意思。使用「@」和測試'!$ mysqli'只是我嘗試的最後一件事。在此之前沒有任何輸出沉默。 – 2010-11-03 15:03:40

+0

首先在調試時刪除'@'。第二:你是否嘗試刪除所有error_log函數並實例化mysli類?如果是的話會發生什麼你能連接嗎? – Shoe 2010-11-03 16:37:49

回答

0

首先,道歉。我在一個陌生的環境中工作,不知道錯誤日誌記錄已關閉。我通過ini_set('log_errors', true)打開了它,並開始獲取我需要的信息。我留下這個以防萬一有人需要搜索同樣的問題。

+0

請標記爲已回答 – symcbean 2010-11-03 17:07:48

+0

我會,但不能等待等待期限屆滿。 – 2010-11-03 20:19:40