Mysql没有按特定号码返回选择查询

时间:2015-07-17 14:35:52

标签: php mysql codeigniter

我正在使用CodeIgniter并从表中调用数据 -

    $this->connection->select('*');
    $this->connection->from($this->database);

    if(is_numeric($item))
    {
        $this->connection->where('id',$item);
    }
    else
    {
        $this->connection->or_like('name',$item);
    }

    $this->connection->limit(50, 0);

    $query = $this->connection->get();

    die(print_r($query->result_array())." die");

当我输入Item作为数据库中可用的任何ID时,它正确返回数组。但是当我使用4147(它也存在于数据库中时,它不会打印它)。另外,当使用$ item作为字符串时,它不会返回“name”字段中某些字包含的某些单词。

1 个答案:

答案 0 :(得分:0)

您错误地使用or_like(),因为它没有前导的第一个where语句。你的代码产生类似于:SELECT * FROM table WHERE OR name LIKE '%abc%'的东西,它会导致错误。

正确的方法是使用:

else
{
    $this->connection->like('name',$item);
    // now you can start using or
    $this->connection->or_like('address',$anotheritem);

}