2017-08-31 191 views
0

我看過教程並在互聯網上搜索,但我的問題仍然存在,「codeigniter說(test.user_accounts)不存在」。我在phpmyadmin中創建了一個名爲「test」的數據庫,並從我的終端上搜索到了它,並得到了我放入它的結果,同時我在配置文件中更改了database.php文件,並添加了localhost,root,「mypassword」和「test」主機名,用戶名,密碼,數據庫。Codeigniter無法識別我的數據庫

所有憑據都是正確的,因爲我使用它們從終端登錄到mysql界面。

$this->load->database(); 
$q=$this->db->query("Select * from user_accounts"); 
print_r($q); //prints that no such table as test.user_accounts 

但我可以從phpmyadmin和我的終端中看到表格和值。對於這種頭部劃傷問題的任何可能的解決方案都非常感謝。

回答

0

表不存在響應應該表示您正在連接到數據庫並且您的查詢正在執行,所有這些都非常好。

也許嘗試簡化問題,並將其隔離。也許嘗試一個應該始終存在的表格,例如:select 1 from dual。這可能是因爲你沒有「使用」的任何當前的數據庫,幾乎命名空間問題,請嘗試:select * from test.user_accounts

+0

仍然沒有運氣,順便說一句,如果我從phpmyadmin「select * from user_accounts」我得到我的結果,這不是說codeigniter無法找到數據庫測試? – Asim

+0

我懷疑如此。在表名上使用明確的數據庫前綴,例如:'test.user_accounts'應該有助於確定問題是否存在。 – LaFayette

0

從來就瞭解你的問題,我認爲it's只是你應該缺少了一點東西。

真的,你的代碼到目前爲止是正確的,但再看看你的數據庫配置。

只有4條線,我們用來改變

'hostname' => 'localhost', 
'username' => 'root', 
'password' => '', 
'database' => 'test', 

也許你重複他們的一些,或者只是顛倒的價值觀。

最後,它可能只是一個字母或一些拼寫錯誤,如帳戶,寫在php_admin正確和錯誤與只保存在您的應用程序「C」。 使用複製和粘貼總是確保(當然你可能是這樣做的)

無論我們多麼有經驗,總是會發生這些事情。