public function get_modno_sno($id)
{
$query = 'select a.model_no,a.serial_no,a.stock_id from tra_item_stock a where a.trans_id is NULL and a.model_no = '.$id.'
union
select a.model_no,a.serial_no,a.stock_id from tra_indent_issue_details_2 a where a.flag = 3 and a.model_no ='.$id;
$result = $this->db->query($query);
return $result->result();
}
当我运行此查询错误时显示为:
栏" kb234"不存在
kb234
是传递给$id
答案 0 :(得分:3)
您没有用引号括起kb234
,因此数据库会将其标识为列名。
您可以修改代码以包含引号:
public function get_modno_sno($id)
{
$query = "select a.model_no,a.serial_no,a.stock_id from tra_item_stock a where a.trans_id is NULL and a.model_no = '$id'
union
select a.model_no,a.serial_no,a.stock_id from tra_indent_issue_details_2 a where a.flag = 3 and a.model_no = '$id'";
$result = $this->db->query($query);
return $result->result();
}
但请注意,使用字符串操作创建SQL查询是一种狡猾的做法,这会使您的代码容易受到SQL注入攻击。您应该考虑使用prepared statement。
答案 1 :(得分:2)
.model_no ='.$id;
在联合查询的末尾缺少''