我正在使用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”字段中某些字包含的某些单词。
答案 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);
}