【问题标题】:CodeIgniter - Array to String conversion errorCodeIgniter - 数组到字符串的转换错误
【发布时间】:2014-09-19 16:57:08
【问题描述】:

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

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

【问题讨论】:

  • 可能您正在执行类似echo $username 的操作,而$username 是您查询结果中的值的数组。

标签: php codeigniter


【解决方案1】:

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

【讨论】:

  • 这似乎不是修复,摆脱了错误但没有工作
  • 您提出的问题是关于错误及其发生的原因。如果您正在尝试做其他事情,您可以提出一个新问题或编辑这个问题并提供更多详细信息。
【解决方案2】:

假设你得到一个有效的回报,当你返回时使用

result();

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

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

【讨论】:

    【解决方案3】:

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

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

    此代码仅在您获得单条记录作为回报时才有效。

    您可以使用 print_r() 函数来检查,如下所示:

    <?php print_r($username); ?>
    

    【讨论】:

      猜你喜欢
      • 2012-12-02
      • 2023-03-11
      • 1970-01-01
      • 2015-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多