Bla*_*ama 0 activerecord codeigniter
我尝试umat_id使用此SQL查询:
SELECT umat_id FROM msumat WHERE nama = $nama
Run Code Online (Sandbox Code Playgroud)
我将此SQL查询转换为CI的Active Record:
$this->db->select('umat_id');
$terdaftar = $this->db->get_where('msumat', array('nama' => $nama));
Run Code Online (Sandbox Code Playgroud)
所以这个查询应该返回一个字符串(例如:"John").
但是当我试图回应它时出现错误: 类CI_DB_mysql_result的对象无法转换为字符串
我尝试过这样的事情:echo (string)$terdaftar;但是它不起作用.
我只想回应"约翰"
编辑 刚才说我想将"John"插入变量中.怎么做?
$john = ????
Run Code Online (Sandbox Code Playgroud)
由于一些用户已经指出了解决方案,我只是解释了为什么你确实得到了这个错误,所以你可以更好地理解codeigniter给出的查询结果.
这个错误:
但是当我试图回应它时出现错误:类CI_DB_mysql_result的对象无法转换为字符串
发生的原因是你试图回显一个物体.
这段代码
$terdaftar = $this->db->get_where('msumat', array('nama' => $nama));
Run Code Online (Sandbox Code Playgroud)
将返回一个对象,该对象将包含有关您已完成的查询的信息.使用此对象,您可以将结果(行)作为对象执行此操作:
$results = $terdaftar->result();
Run Code Online (Sandbox Code Playgroud)
或者,如果您对数组感觉更舒服,可以将结果(行)作为数组返回:
$results = $terdaftar->result_array();
Run Code Online (Sandbox Code Playgroud)
您还可以获得执行此操作的结果数:
$number_results = $terdaftar->num_rows()
Run Code Online (Sandbox Code Playgroud)
这只是一个例子,你可以在这里阅读更多关于结果的信息 http://ellislab.com/codeigniter/user-guide/database/results.html
编辑 更好的解释:假设我们使用result_array()函数以纯数组格式获取结果:
$results = $terdaftar->result_array();
Run Code Online (Sandbox Code Playgroud)
现在你的变量$ 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'];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5066 次 |
| 最近记录: |