Php 错误:类CI\u DB\u mysql\u结果的对象无法转换为字符串
我是CodeIgniter的新手,我曾尝试阅读CI的文档,但我仍然无法解决我的问题,也许这里有人可以帮助解决我的问题。这是我的密码: 在我的控制器中Php 错误:类CI\u DB\u mysql\u结果的对象无法转换为字符串,php,mysql,database,codeigniter,Php,Mysql,Database,Codeigniter,我是CodeIgniter的新手,我曾尝试阅读CI的文档,但我仍然无法解决我的问题,也许这里有人可以帮助解决我的问题。这是我的密码: 在我的控制器中 class Registration extends CI_Controller{ function __construct(){ parent::__construct(); $this->load->model('registration_model','rmod'); }
class Registration extends CI_Controller{
function __construct(){
parent::__construct();
$this->load->model('registration_model','rmod');
}
function ambil() {
$gender = $this->input->post('kelamin');
$tinggi = $this->input->post('height');
$berat = $this->input->post('weight');
$weight = $this->rmod->ambilBeratPria($tinggi);
echo $weight;
}
在我的模型中
function ambilBeratPria($tinggi) {
$this->db->select('berat')->from('pria')->where('tinggi',$tinggi);
$query = $this->db->get();
return $query;
}
我想在模型中获得查询结果,但我得到如下错误:
消息:类CI\u DB\u mysql\u结果的对象无法转换为字符串
也许这里有人能帮我解决问题?
谢谢。您需要返回查询结果:
function ambilBeratPria($tinggi) {
$this->db->select('berat')->from('pria')->where('tinggi',$tinggi);
$query = $this->db->get();
return $query->result();
}
编辑:
如果结果是单行:
function ambilBeratPria($tinggi) {
$this->db->select('berat')->from('pria')->where('tinggi',$tinggi);
$query = $this->db->get();
if ($query->num_rows() > 0) {
return $query->row()->berat;
}
return false;
}
当前您正试图直接回显
$this->db->get()返回的值代码>。但是,要使用查询的结果,您需要
如果生成如下查询:
$query = $this->db->get();
然后有几个选项用于生成结果。这些示例假设您在返回的行中有一个称为weight的列
result()
-允许您将结果用作对象数组
结果\u数组()
-允许您将结果用作数组
row()
-如果您只希望得到一个结果,那么这可能很有用。如果查询生成多个结果,则只返回第一行。允许您将结果用作对象
行数组()
-与行()相同,但允许将结果用作数组
在使用Code Igniter framework进行PHP项目时,我遇到了相同的错误。在我的模型类中有一个名为getprojectnames()的方法
我想在controller类中调用这个函数,并在view类的下拉列表中使用它
所以在我的控制器课上
$this->data['projects'] =$this->testcase_model->getprojectnames();
$this->load->view("admin/_layout_main",$this->data);
在我看来
<?php echo form_open('admin/check1'); ?>
<div class="row" style=" margin-left: 10px; margin-top: 15px;">
<h5 class="box-title">Projects List : <? php echo form_dropdown('projects', $projects, 'id'); ?> </h5>
<div>
<input type="submit" style="width:200px;" class="btn btn-block btn-primary" value="Show Project TestCase Status" /></div>
</div>
<?php echo form_close();?>
然后我的程序运行得很好。谢谢你的回答^^我已经试过了。返回的不是查询的结果,而是我运行代码时出现的“数组”文本。。。也许我在控制器代码上出错了??当我尝试时,我遇到了这样一个错误“试图获取非对象的属性”也许我的代码仍然错误^^这意味着没有结果。在返回结果之前,您可以查看if$query->num_rows()>0
。太好了!!它起作用了!非常感谢,我真的非常感谢它^^很高兴它有帮助。请接受对您帮助最大的答案。非常感谢您的解释,我真的非常感谢!^^它起作用了^^不用担心,我很高兴它起了作用。
if ($query->num_rows() > 0)
{
$row = $query->row();
echo $row->weight;
}
if ($query->num_rows() > 0)
{
$row = $query->row_array();
echo $row['weight'];
}
public function getprojectnames(){
$result['names']=array();
$this->db->select('name');
$this->db->from('project');
$this->db->where('status','Not Completed');
$query=$this->db->get();
return $query->result();
}
$this->data['projects'] =$this->testcase_model->getprojectnames();
$this->load->view("admin/_layout_main",$this->data);
<?php echo form_open('admin/check1'); ?>
<div class="row" style=" margin-left: 10px; margin-top: 15px;">
<h5 class="box-title">Projects List : <? php echo form_dropdown('projects', $projects, 'id'); ?> </h5>
<div>
<input type="submit" style="width:200px;" class="btn btn-block btn-primary" value="Show Project TestCase Status" /></div>
</div>
<?php echo form_close();?>
public function getprojectnames(){
$result['names']=array();
$this->db->select('name');
$this->db->from('project');
$this->db->where('status','Not Completed');
$query=$this->db->get();
foreach ($query->result() as $row)
{
array_push($result,$row->name);
}
return $result;
}