2014-09-19 92 views
0

我正在創建一個函數來獲取基於用戶ID的用戶數據。這是我所創建的函數:CodeIgniter - 數組到字符串轉換錯誤

function getUserData($data, $id) { 
     $query = $this->db->query('SELECT ' . $data . ' FROM users WHERE id = "' . $id . '"'); 

     return $query->result(); 
    } 

我打電話我home_view.php文件這個方法:

<?php $username = $this->model_users->getUserData('username', 3); ?> 

當我這樣做,我得到一個錯誤說

A PHP Error was encountered 

Severity: Notice 

Message: Array to string conversion 

Filename: views/home_view.php 

Line Number: 25 

有人能告訴我爲什麼這樣做嗎?

+0

可能是你正在做的事情,比如'$回聲username',和'$ username'是值從一個數組您查詢結果。 – 2014-09-19 17:00:23

回答

0

getUserData()將返回數據庫結果。如果您希望它返回單個值更新該函數以返回單個值。你還需要確保的結果是有效的和處理錯誤,但類似下面應該讓你開始

參考 - https://ellislab.com/codeigniter/user-guide/database/results.html

function getUserData($data, $id) { 
    $query = $this->db->query('SELECT ' . $data . ' FROM users WHERE id = "' . $id . '"'); 

    $result = $query->result_array(); 
    return $results[$data]; 
} 
+0

這似乎沒有修復,擺脫了錯誤,但沒有工作 – Divergent 2014-09-19 17:08:48

+0

你問的問題是關於錯誤和爲什麼發生。如果你正在嘗試做其他事情,你可以提出一個新問題或者編輯這個問題以獲得進一步的細節。 – 2014-09-19 19:59:28

0

假設你得到有效的回報,當你回來時使用

​​

codeigniter在失敗時產生一個空數組,否則返回一個對象數組。在數據庫上運行查詢,看它是否按照你的想法進行。

我也認爲你應該逃避那些你必須有變數....

0

你的函數將返回標準PHP對象的數組訪問的用戶名,你必須在那之後加入這行:

<?php 

    $username = $this->model_users->getUserData('username', 3); 

    echo $username[0]->username; 

?> 

此代碼僅適用於您獲得單個記錄作爲回報。

您可以通過使用的print_r()函數像這樣的檢查:

<?php print_r($username); ?>