Tim*_*nen 4 php sqlite select utf-8 case-sensitive
在SQLite中,我希望不区分大小写的"SELECT LIKE name"
工作对于普通的拉丁语名称很好,但是当名称是UTF-8且非拉丁字符时,select会变得区分大小写,如何使它也像latin字符一样不区分大小写?
ps我的sqlite是v3,我用PHP PDO连接
对于SQLite,您有两个选择:
$pdo = new PDO("sqlite::memory:");
# BEGIN
function lexa_ci_utf8_like($mask, $value) {
$mask = str_replace(
array("%", "_"),
array(".*?", "."),
preg_quote($mask, "/")
);
$mask = "/^$mask$/ui";
return preg_match($mask, $value);
}
$pdo->sqliteCreateFunction('like', "lexa_ci_utf8_like", 2);
# END
$pdo->exec("create table t1 (x)");
$pdo->exec("insert into t1 (x) values ('[?????? España Dvo?ák]')");
header("Content-Type: text/plain; charset=utf8");
$q = $pdo->query("select x from t1 where x like '[_??%Ñ%?Á_]'");
print $q->fetchColumn();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2463 次 |
| 最近记录: |