从笨查询返回一个细胞(Returning one cell from Codeigniter Que

2019-10-29 06:18发布

我想查询表,只需要一个细胞返回。 现在我能想到这样做的唯一途径是:

 $query = $this->db->query('SELECT id FROM crops WHERE name = "wheat"');
 if ($query->num_rows() > 0) {
     $row = $query->row();
     $crop_id = $row->id;
 }

我想是的,因为我选择“身份证”,无论如何,对于要的结果。 IE:$查询= 'cropId'。

有任何想法吗? 这甚至可能吗?

Answer 1:

当然,这是可能的。 只需使用AND您的查询:

$query = $this->db->query('SELECT id FROM crops WHERE name = "wheat" AND id = {$cropId}');

或者你可以使用所提供的原始动力的Active Record类:

$this->db->select('id');
$this->db->from('crops');
$this->db->where('name','wheat');
$this->db->where('id',$cropId);
$query = $this->db->get();

如果你只是想cropId从整列:

foreach ($query->result()->id as $cropId)
{
    echo $cropId;
}

尝试了这一点,我不知道这是否会工作:

$cropId = $query->first_row()->id;


Answer 2:

需要注意的是要围绕交换你的报价:使用“为你的PHP字符串,'您的SQL字符串首先,它不会是在PostgreSQL和检查这样的事情其他数据库系统兼容。

否则,克里斯托弗告诉你,你可以测试你的查询作物标识符。 只有当你在PHP中定义之间的串“...”,变量不会在字符串替换。 于是,他表现出了错误的PHP代码。

"SELECT ... $somevar ..."

会更好地工作。

然而,存在这样写串的安全问题:这是非常危险的,因为$ somevar可以代表一些额外的SQL,完全改变你的SELECT中的东西,你甚至不想去想。 因此,由克里斯托弗提到的活动记录是安全多了。



文章来源: Returning one cell from Codeigniter Query