0

我试图umat_id用这个 SQL 查询得到一个:

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 = ????
4

3 回答 3

5

由于一些用户已经指出了解决方案,我只是在解释为什么您确实收到此错误,以便您可以更好地理解 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'];

}
于 2013-03-07T12:02:34.943 回答
1

尝试:

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

foreach ($terdaftar->result() as $row)
{
    echo $row->umat_id;
}

阅读文档以获取更多信息。

于 2013-03-07T11:49:09.877 回答
1

试试这个:

 $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*/
于 2013-03-07T11:49:35.353 回答