Php CodeIgniter查询错误

Php CodeIgniter查询错误,php,database,codeigniter,Php,Database,Codeigniter,我正在使用codeIgniter,我真的被它绊住了 这是我的模型函数 public function get_products_names($c_name) { $this->db->query('SELECT name FROM products WHERE category=$c_name'); return $query->result_array(); } 我从控制器类调用这个函数,如下

我正在使用codeIgniter,我真的被它绊住了

这是我的模型函数

public function get_products_names($c_name)
{

$this->db->query('SELECT name
                  FROM products
                  WHERE category=$c_name');

return $query->result_array();
}   
我从控制器类调用这个函数,如下所示

    $this->load->model('products_model');
    $data['products_categories'] = $this->products_model->get_products_names('Aata');
    echo $data['products_categories']['name'];
它给了我以下的错误,我不知道为什么

A Database Error Occurred

Error Number: 1054

Unknown column '$c_name' in 'where clause'

SELECT name FROM products WHERE category=$c_name

Filename: C:\wamp\www\OSW_appnsys\misystemsys\database\DB_driver.php

Line Number: 330

任何帮助都将不胜感激

将单引号更改为双引号

双引号字符串最重要的特性是变量名将被扩展


不确定这样做是否安全。

我可能有点偏离,但你为什么不试试这样的方法呢: (使用活动记录使查询更具“可读性”) 型号:

控制器:

$names_arr = array();
$this->load->model('products_model');
$result = $this->products_model->get_products_names('Aata');
foreach($result as $r){
array_push($names_arr,$r->name)
}
print_r($names_arr);
您可以提供以下信息:

$this->db->query('SELECT name
              FROM products
              WHERE category='.$c_name);
return $query->result(); / return $query->row_array();

它可以正常工作。

escape
“从类别为“”的产品中选择名称”.$c_name
在“where子句”中给出错误
未知列“Aata”从category=Aata的产品中选择名称
现在它在“where子句”中给出错误
未知列“Aata”从category=Aata的产品中选择名称
但是Aata是一个categoryhmm确保您的列名完全匹配,或者首先,如果db表'product'中有一个名为category的列,那么您是否正在使用mysql,如果是,您是否尝试过在mysql提示符中运行查询?
$names_arr = array();
$this->load->model('products_model');
$result = $this->products_model->get_products_names('Aata');
foreach($result as $r){
array_push($names_arr,$r->name)
}
print_r($names_arr);
$this->db->query('SELECT name
              FROM products
              WHERE category='.$c_name);
return $query->result(); / return $query->row_array();