【问题标题】:Codeigniter Active Record return typeCodeigniter Active Record 返回类型
【发布时间】:2013-02-22 14:25:11
【问题描述】:

我试图通过这个 SQL 查询获得umat_id

SELECT umat_id FROM msumat WHERE nama = $nama

我将此 SQL 查询转换为 CI 的 Active Record:

$this->db->select('umat_id');
$terdaftar = $this->db->get_where('msumat', array('nama' => $nama));

所以这个查询应该返回一个字符串(例如:“John”)。

但是当我尝试回显它时出现错误: CI_DB_mysql_result 类的对象无法转换为字符串

我尝试过这样的事情:echo (string)$terdaftar;,但它不起作用。

我只想回应“约翰”

编辑 刚才说我想将“John”插入到变量中。该怎么做?

$john = ????

【问题讨论】:

    标签: codeigniter activerecord


    【解决方案1】:

    由于一些用户已经指出了解决方案,我只是解释为什么您确实收到此错误,以便您更好地理解 codeigniter 提供的查询结果。

    这个错误:

    但是当我尝试回显它时出现错误:类对象 CI_DB_mysql_result 无法转换为字符串

    发生是因为您试图回显一个对象。

    这段代码

    $terdaftar = $this->db->get_where('msumat', array('nama' => $nama));
    

    将返回一个对象,该对象将包含有关您已完成查询的信息。 使用此对象,您可以将结果(行)作为对象执行:

    $results = $terdaftar->result();
    

    或者,如果您对数组感觉更舒服,您可以将结果(行)作为数组返回:

    $results = $terdaftar->result_array();
    

    你也可以这样得到结果的数量:

    $number_results = $terdaftar->num_rows()
    

    这只是一个示例,您可以在此处阅读有关结果的更多信息 http://ellislab.com/codeigniter/user-guide/database/results.html

    编辑 更好的解释:假设我们使用 result_array() 函数以纯数组格式获取结果:

    $results = $terdaftar->result_array();
    

    现在您的变量 $results 是一个数组,要遍历它并获取您想要的数据,您将执行以下操作:

    foreach ($results as $key => $row) {
        //the row variable will have each row of your database returned by your query
        //so if you want to access a field from that row, 
        //let's say for example the name field. You would do something like this
        if($row['name']=='John')
            echo $row['name'];
    
    }
    

    【讨论】:

    • 非常感谢您的帮助:D
    • 我已经更新了我的答案,以便您更好地了解如何从一行中获取特定字段
    【解决方案2】:

    试试:

    $this->db->select('umat_id');
    $terdaftar = $this->db->get_where('msumat', array('nama' => $nama));
    
    foreach ($terdaftar->result() as $row)
    {
        echo $row->umat_id;
    }
    

    阅读documentation了解更多信息。

    【讨论】:

    • 感谢您的帮助:D,请查看我编辑的问题(不在文档中):D
    【解决方案3】:

    试试这个:

     $this->db->select('umat_id');
     $terdaftar = $this->db->get_where('msumat', array('nama' => $nama));
     $row = $terdaftar->row_array();
     $your_variable = $row['umat_id']; /*Here comes your john*/
    

    【讨论】:

      猜你喜欢
      • 2010-11-16
      • 2013-02-18
      • 2012-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-24
      • 1970-01-01
      相关资源
      最近更新 更多