$ this-> db->喜欢不过滤结果

时间:2014-01-30 23:11:38

标签: php mysql codeigniter

我的网站标题中有一个搜索表单(我也使用Bootstrap)。表单的目的是根据输入查询用户。

查看

<form class="navbar-form pull-right" method="post" action="updates/search" name="search"> 
    <input type="text" class="input-medium" size="50" placeholder="Search for users" style="padding-left:10px">
        <button type="submit" class="btn btn-small" name="sub">Search</button>
    </input>
</form>

模型

function get_search($input)
{
    $this->db->like('username',$input); 
    $query = $this->db->get('users');

    print_r($query->result()); // for now i am just printing the results, in the future i will simply return this 
}

控制器

public function index($renderData="")
{ 
    $this->load->model("user_model");
    $this->load->model("updates_model"); 

    $this->_render('pages/search');
}

当我运行搜索查询时,说“as; fa; sklfl; kasf”,它仍会打印数据库中的所有用户名(5),而不是空白页。我的get_search方法由于某种原因没有找到$ input变量吗?

编辑:我修好了。我在表单中有值,而不是输入

3 个答案:

答案 0 :(得分:1)

您的文本框未给出任何名称

<input type="text" class="input-medium" size="50" placeholder="Search for users" style="padding-left:10px" />

  <input type="text" name ="username" class="input-medium" size="50" placeholder="Search for users" style="padding-left:10px"/>

然后使用您的查询,如 -

$input = $this->input->post('username');
$this->db->like('username',$input); 
$query = $this->db->get('users'); 

答案 1 :(得分:0)

$this->db->like('username',$input); 
$query = $this->db->get('users');

您的类似查询与变量$ query的关联在哪里?

您告诉您的框架获取所有用户并将其设置为$ query。

$query = $this->db->get('users');

答案 2 :(得分:0)

function get_search($input)
{
    //you might want to add `%` on your like statement just add both/after/before the third paraeter
    $this->db->like('username',$input,'BOTH'); 
    $query = $this->db->get('users');

    //check the query
    print_r($this->db->last_query());
}