我使用PDO和SQLite,並希望實現unicode字符串不區分大小寫的匹配。如何使用`sqliteCreateFunction`自定義的LIKE語句在參數化查詢中轉義通配符?
我發現this:
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);
我需要與不受信任的文本中使用它,所以我使用參數化查詢。
問題是不可信的文本可以包含像%
或_
通配符,我不希望他們的行爲與通配符