我想通過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文檔中讀取的嘗試中。
從'@ new'刪除'@'併發布任何PHP錯誤或警告。 – 2010-11-03 14:50:21
這就是我嘗試各種其他方式的意思。使用「@」和測試'!$ mysqli'只是我嘗試的最後一件事。在此之前沒有任何輸出沉默。 – 2010-11-03 15:03:40
首先在調試時刪除'@'。第二:你是否嘗試刪除所有error_log函數並實例化mysli類?如果是的話會發生什麼你能連接嗎? – Shoe 2010-11-03 16:37:49