我想查询表,只需要一个细胞返回。 现在我能想到这样做的唯一途径是:
$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'。
有任何想法吗? 这甚至可能吗?
当然,这是可能的。 只需使用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;
需要注意的是要围绕交换你的报价:使用“为你的PHP字符串,'您的SQL字符串首先,它不会是在PostgreSQL和检查这样的事情其他数据库系统兼容。
否则,克里斯托弗告诉你,你可以测试你的查询作物标识符。 只有当你在PHP中定义之间的串“...”,变量不会在字符串替换。 于是,他表现出了错误的PHP代码。
"SELECT ... $somevar ..."
会更好地工作。
然而,存在这样写串的安全问题:这是非常危险的,因为$ somevar可以代表一些额外的SQL,完全改变你的SELECT中的东西,你甚至不想去想。 因此,由克里斯托弗提到的活动记录是安全多了。