4

例如,如果我有这些变量:

$variable1 = "ABCDEFG";
$variable2 = "AbCDefG";

和 db 中的内容如下:

ABCDEFG
IJKLMNO
PQRSTUV
...

如果我尝试像这样使用 like() 方法:

function get_users()
{

    $q = $this->db->select('*')
                  ->from('users')
                  ->order_by('created asc')
                  ->like('username', $variable1)
                  ->get();
    return $q;

}

结果就OK了,从数据库中找到ABCDEFG记录。

但是,如果我通过大写和小写的 $variable2 结果将是无:

function get_users()
{

    $q = $this->db->select('*')
                  ->from('users')
                  ->order_by('created asc')
                  ->like('username', $variable2)
                  ->get();
    return $q;

}

,这是错误的,因为我需要忽略它是小写还是大写。

如何解决这个问题?

顺便提一句。我的数据库排序规则是utf8_general_ci

4

1 回答 1

15

试试这个:

function get_users()
{

    $q = $this->db->select('*')
                  ->from('users')
                  ->order_by('created asc')
                  ->like('LOWER(username)', strtolower($variable2))
                  ->get();
    return $q;

}
于 2012-11-28T11:46:04.900 回答