You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows环境下PHP如何开启SQLite3的UPDATE/DELETE LIMIT功能

解决方案

Windows版本PHP的php_sqlite3.dll默认将SQLite源码静态编译到扩展内部,没有单独依赖外部SQLite库,要开启SQLITE_ENABLE_UPDATE_DELETE_LIMIT选项,需要自行重新编译php_sqlite3.dll扩展,操作步骤如下:

  • 准备对应版本的Windows PHP编译环境:根据你使用的PHP版本安装对应的Visual Studio编译器(例如PHP 7.4/8.0/8.1对应VS2019,PHP 8.2+对应VS2022),同时下载官方PHP SDK和对应版本的PHP完整源码包
  • 修改sqlite3扩展的编译配置:找到PHP源码目录下的ext/sqlite3/config.w32文件,在SQLite相关的编译参数行中添加宏定义/DSQLITE_ENABLE_UPDATE_DELETE_LIMIT
  • 编译扩展:按照Windows PHP扩展编译流程执行编译命令,完成后会得到新的php_sqlite3.dll文件
  • 替换原有扩展:将编译生成的新dll覆盖PHP安装目录下ext文件夹中的原有php_sqlite3.dll,重启PHP对应的服务即可生效

如果不想自行编译,也可以使用兼容写法实现相同效果,无需修改编译配置:

-- 带LIMIT的DELETE等效写法
DELETE FROM 你的表名 
WHERE 主键列 IN (
    SELECT 主键列 FROM 你的表名 WHERE 筛选条件 LIMIT 行数
);

-- 带LIMIT的UPDATE等效写法
UPDATE 你的表名 
SET 字段名=新值 
WHERE 主键列 IN (
    SELECT 主键列 FROM 你的表名 WHERE 筛选条件 LIMIT 行数
);

内容的提问来源于stack exchange,提问作者tim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 04:27:03