如何在 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 函数
我不明白 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 函数