簡體   English   中英

CodeIgniter-數組到字符串的轉換錯誤

[英]CodeIgniter - Array to String conversion error

我正在創建一個函數,用於根據用戶ID獲取用戶數據。 這是我創建的功能:

    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

有人可以告訴我為什么這樣做嗎?

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];
}

假設您獲得有效的退貨,當您使用退貨時

result();

如果失敗,codeigniter會生成一個空數組,否則它將返回一個對象數組。 在數據庫上運行查詢,以查看其是否按照您的預期進行。

我還認為您可能應該逃避那里的那些變量。

您的函數將返回標准PHP對象數組,以訪問在此之后必須添加此行的用戶名:

<?php

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

    echo $username[0]->username;

?>

僅當您獲得單個記錄作為回報時,此代碼才有效。

您可以通過使用print_r()函數進行檢查,如下所示:

<?php print_r($username); ?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM