2010-07-13 57 views
15

我有一個將事務寫入mysql數據庫的Codeigniter應用程序(使用版本2.1.0)。我相當確定發生了外鍵約束錯誤,但是我無法找到使CI能夠告訴我具體錯誤的方法。 mysql_error()返回空。在Codeigniter下,是否可以看到mysql_error()?

誰能告訴我如何讓Codeigniter告訴我mysql錯誤信息?

回答

2

您可以使用call_function在DB類訪問mysql_error

http://ellislab.com/codeigniter/user-guide/database/call_function.html

當然,你也可以只打開調試標誌在DB的配置,來告訴CI顯示分貝錯誤:

http://ellislab.com/codeigniter/user-guide/database/configuration.html

db_debug - TRUE/FALSE(布爾值) - Wheth呃數據庫錯誤應顯示爲 。

+0

當我嘗試使用call_function(「mysql_error」),我得到如下: 「此功能不適用於您所使用的數據庫「。 這是一個MySQL下的innodb表。 我確實在database.php配置文件中有$ db ['default'] ['db_debug'] = TRUE。 我得到的最多的是我的異常和堆棧跟蹤。 這太令人沮喪了。現在,我覺得和CI一起去是一個很大的錯誤。 – pbarney 2010-07-13 06:16:40

+0

@pbarney不要放棄它,請檢查我的答案 – DRL 2010-07-13 06:47:20

+1

另請注意,正如'call_function'頁面中提到的那樣,您應該傳遞函數**的名稱,而不要使用** mysql_'前綴。 – Amber 2010-07-13 06:49:19

35

是的,這是mysql_error()包裝器。

$this->db->_error_message(); 

而且mysql_errno包裝是:

$this->db->_error_number(); 
+0

在CI的當前版本中,這些是私有函數。有關通過修改核心文件訪問它們的最佳方式的任何建議? – pbarney 2015-03-27 19:57:04

+0

我不明白這一點,我的意思是如何使用它。我試過但沒有任何顯示。 @DRL – 2017-01-18 13:00:39

+0

我有這個 - >調用未定義的方法CI_DB_mysqli_driver :: _ error_number()。我使用PHP 5.6 – 2018-01-16 05:59:09

相關問題