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


how to implement C user function for SQLite in PHP

我不明白sqlite3如何与自定义函数一起工作。只是我不知道如何将任何自定义函数添加到数据库中。

我真的需要在我的机器下编译 C 代码文件并使用生成的 DLL(我在 Windows 下)作为 sqlite 扩展吗?如果是这样,如何在其他操作系统(mac/linux...)下使用此扩展?我知道 sqlite 是独立于操作系统的,但是...

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

我将使用php + sqlite,可能在linux下。我无法创建自定义 sqlite 构建。

主要问题是:如何在现有的sqlite3数据库中实现UDF跨平台?

只有通过

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

创建可从 PHP 使用的用户定义 SQL 函数的最简单方法是使用 PDO::sqliteCreateFunction(或过时的 SQLiteDatabase::createFunction)注册 PHP 函数。