Rimifon (ID: 2)
头衔:论坛坛主
等级:究级天王[荣誉]
积分:15
发帖:1 篇
来自:保密
注册:2023-12-22 23:56:44
造访:2024-06-02 16:06:24
发帖:1 篇
来自:保密
注册:2023-12-22 23:56:44
造访:2024-06-02 16:06:24
[ 第 1 楼 ]
15
回复
最近在 php 8.1 中使用 sqlite(v3.40) 的 regexp 方法查询时发现 pdo_sqlite 居然没有 regexp 方法,而实际测试 sqlite3 命令(v3.39)是已经内置了 regexp 方法的。于是想办法让 sqlite 调用 php 方法来实现正则查询。
代码如下:
调用示例:
代码如下:
$pdo = new PDO('sqlite::memory:');
$pdo->sqliteCreateFunction('regexp', function($pattern, $str) { return preg_match('/' . $pattern . '/', $str); }, 2);sqiteCreateFunction 第三个参数为自定义方法的参数数量,此处为 2 个。调用示例:
select regexp('[a-f]', 'hello')或者select 'hello' regexp '[a-f]'