CodeIgniter活动记录查询不返回结果

问题描述 投票:0回答:4

在我的 CodeIgniter2 模型中,我使用

like()
查询来获取名字为
rice
的所有产品,该产品不是工作控制器。

如果我使用

get_where('name')
而不是
like()
,效果很好。

public function fetchdeal_products($id) {
    $this->db->select('*');
    $this->db->from('products');
    $q = $this->db->like("name", $id);
    
    if ($q->num_rows() > 0) {
        foreach (($q->result()) as $row) {
            $data[] = $row;
        }
        return $data;
    }    
}
php codeigniter activerecord sql-like
4个回答
1
投票

数据库

LIKE
函数仅在SQL语句中创建LIKE。之后您仍然需要调用
GET
方法;像这样;

$this->db->like('name', $id);
$q = $this->db->get();

0
投票

您错误地使用了 $this->db_like() 。

$this->db->like('title', 'match'); 
// Produces: WHERE title LIKE '%match%'

(来自文档)

在你的情况下,用法是

$this->db->like('name', 'rice')

更多信息


0
投票
public function fetchdeal_products($id) 
{
    $query = $this->db->query("Select products.* From products Where (products.name Like '%$id%')");
    $result = $query->result_array();
    return $result;
}

0
投票

你必须像下面这样写。

public function fetchdeal_products($id) {
    $this->db->like("name", $id);

    $q = $this->db->get('products');
    if ($q->num_rows() > 0) {
        foreach (($q->result()) as $row) {
            $data[] = $row;
        }

        return $data;
    }    
}
© www.soinside.com 2019 - 2024. All rights reserved.