CodeIgniter - 数组到字符串转换错误

时间:2014-09-19 16:57:08

标签: php codeigniter

我正在创建一个函数来根据用户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

有人可以告诉我为什么要这样做吗?

3 个答案:

答案 0 :(得分: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];
}

答案 1 :(得分:0)

当您使用

返回时,假设您获得了有效的回报
result();

codeigniter在失败时生成一个空数组,否则返回一个对象数组。在db上运行查询以查看它是否按照您的意图执行。

我也认为你应该逃避那里的那些变量......

答案 2 :(得分:0)

您的函数将返回标准PHP对象的数组,以访问您之后必须添加此行的用户名:

<?php

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

    echo $username[0]->username;

?>

此代码仅在您获得单个记录时才有效。

您可以使用 print_r()这样的功能来检查:

<?php print_r($username); ?>