如何在 PHP 中为 SQLite 实现 C 用户函数

how to implement C user function for SQLite in PHP

我不明白 sqlite3 如何使用自定义函数。只是我不知道如何向数据库添加任何自定义函数。

我真的需要在我的机器下编译 C 代码文件并将生成的 DLL(我在 windows)用作 sqlite 扩展吗?如果是这样,在其他 OS (mac/linux...) 下使用此扩展名怎么样?我知道 sqlite 是 os-独立的但是...

我目前有:udf_xxx.c(未编译),mysqlite3.db(填充);我 运行 windows10。

我打算用php+sqlite,大概在linux下。我无法进行自定义 sqlite 构建。

主要问题是:如何在现有的sqlite3数据库中实现UDF cross-platform?

只有通过

才能使用 C 函数
  • 从 C 调用 sqlite3_create_function,或通过
  • 正在创建一个 DLL/shared 库并使用 load_extension SQL 函数动态加载它。 出于安全原因,默认情况下禁用此功能,很可能您的 PHP 没有明确启用它。

创建可从 PHP 使用的用户定义 SQL 函数的最简单方法是使用 PDO::sqliteCreateFunction (or the outdated SQLiteDatabase::createFunction).

注册一个 PHP 函数