通过SQL在Fat Free框架中搜索功能

时间:2017-04-28 01:24:35

标签: php sql fat-free-framework

我正在尝试创建一个搜索功能,用户可以键入搜索数据库并返回任何匹配项。我在将用户输入链接到SQL查询时遇到问题。

这里的问题是POST.search被视为字符串,我希望它是用户输入。

我试过这种方式,但$ db和$ f3无法识别 -

 $db->exec(
'SELECT * FROM table WHERE search=?',
$f3->get('POST.search')
);

这是我的代码 -

在Model - User.php

class User extends DB\SQL\Mapper {

public function __construct(DB\SQL $db) {
    parent::__construct($db,'table');
}

public function searchq() {

$search = ('POST.search');      
$q="Select * table where name LIKE '$search'";
return $this->db->exec($q);
}
}

在用户控制器中:

    public function search()
    {


    $user = new User($this->db);
    $this->f3->set('table',$user->searchq($search));        
    $this->f3->set('view','search.htm');

    }

如何让它以我的方式工作,或者我如何才能找到无法识别$ db和$ f3的方式?

1 个答案:

答案 0 :(得分:0)

可能是错误的方法语法,请参阅https://fatfreeframework.com/3.6/sql#exec

它应该是:

$db->exec('SELECT * FROM table WHERE search = ?',
  array(1 => $f3->get('POST.search'))
);

和LIKE:

$db->exec('SELECT * FROM table WHERE search LIKE ?',
  array(1 => '%'.$f3->get('POST.search').'%')
);