使用标题从数据库codeigniter获取数据

时间:2018-08-12 14:12:38

标签: php codeigniter

我使用codeigniter编写了一个代码,以按主题标题获取数据。我的代码是。

控制器

public function viewTopic($category, $title){
        $data['topic'] = $this->Setting->get_dataNew('*', 'community_topics', 'WHERE title="'.str_replace('-', ' ', urldecode($title)).'"');
}

链接就是这样的。

/community/questions/ما-هو-المجتمع-؟

问题是,当我在标题中添加特殊字符(如-或())时,查询不起作用,有没有办法解决它?

1 个答案:

答案 0 :(得分:1)

由于您正在使用-来删除空格,除非您为其使用了不同的符号,否则codeigniter会过滤所有特殊字符以防止sql注入攻击,但是,您可以添加名为urlSlug的列并存储子弹中的确切值,因此当您下次查询时,它将是

public function viewTopic($category, $title){
        $data['topic'] = $this->Setting->get_dataNew('*', 'community_topics', 'WHERE urlSlug="'.$title.'"');
}

我们在阿拉伯版本的网站上使用了相同的名称,并且运行良好, 也不要忘记,您需要将允许的字符列表添加到 $config['permitted_uri_chars']=''以避免将来出现任何错误。