2017-05-12 59 views
0

我有這樣的代碼:mysqli的致命錯誤在生產,但沒有發展

$mysqli = new mysqli('localhost','username','password','database'); 

$insert = "INSERT INTO submissions (client_name, client_company) VALUES ('$client_name', '$client_company')"; 

if ($mysqli->query($insert) === TRUE) { 
    echo "success"; 
} else { 
    echo "Error: " . $mysqli . "<br>" . $mysqli->error; 
} 

在我的開發環境中運行完美,插入變量到正確的表列。

然而,在生產我得到這個錯誤:

Catchable fatal error: Object of class mysqli could not be converted to string in 'path' on line x

我知道:

  • 沒有與我的mysqli連接,我的應用程序的其它部分沒有錯誤使用憑據等罰款檢索數據從我的數據庫在這兩個開發/生活
  • 該代碼運行良好,插入正確,不會在我的開發環境中的錯誤。

我已經尋找解決方案的錯誤消息,並嘗試了一些,但我仍然不相信,這是問題的真正原因。

+0

Wierd的代碼在你的開發機器上工作...但你需要使用'$ mysqli-> error' –

+2

我認爲這是因爲你的代碼中的'else',你試圖連接我的sqli對象添加到錯誤消息中。嘗試刪除該部分,看看它是否有效 – FMashiro

+0

@RaymondNijland我發現我傳入INSERT語句中的一個PHP變量似乎是原因(實際語句有大約9個變量,而不僅僅是顯示的2個變量)。我無法辨別確切的原因,但是因爲在開發中仍然沒有問題... – JamieMcGrory

回答

0

PHP嘗試投$ mysqli的串這裏:

echo "Error: " . $mysqli . "<br>" . $mysqli->error; 

你應該是這樣做的,而不是

echo "Error: with mysqli <br>" . $mysqli->error; 

或者,也許,如果你想了解更多的細節,但一個變種vump mysqli->錯誤應該足夠了

+0

爲什麼地球上會有人希望在**製作中回顯$ mysqli->錯誤** nevironment –

+1

確定這是一個壞主意,但它是不是這裏的問題:p – Bast

+1

我回答了這個問題,如果人們想在生產中輸出錯誤,那不是我的問題。 – Bast