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