Php CodeIgniter查询错误
我正在使用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(); } 我从控制器类调用这个函数,如下
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();