Php 为什么Sqlite3::prepare()在我的更新中抛出错误。。。FROM语句,尽管语法有效?

Php 为什么Sqlite3::prepare()在我的更新中抛出错误。。。FROM语句,尽管语法有效?,php,sqlite,pdo,Php,Sqlite,Pdo,我有一个SQL语句,在中编写时运行良好PHP@5.6,但在升级到7.3.24(macOS在Big Sur上默认)的过程中,此准备好的语句现在失败了: UPDATE results SET comment = :comment FROM ( SELECT expected , status FROM results

我有一个SQL语句,在中编写时运行良好PHP@5.6,但在升级到7.3.24(macOS在Big Sur上默认)的过程中,此准备好的语句现在失败了:

UPDATE results 
            SET comment = :comment 
            FROM (
                SELECT expected
                        , status
                FROM results
                WHERE report_id = :prevReportID
            ) AS s
            WHERE results.report_id = :workingReportID
            AND results.status = s.status
我已验证sqlite将在命令行上接受此语法,但在调用
prepare
时失败:

SQLite3::prepare(): Unable to prepare
statement: 1, near \"FROM\": syntax error",
                "code": 2,
                "file": "/Volumes/Data/web/database.php:157",
                "trace": [
                   
"{\"function\":\"{closure}\",\"args\":[2,\"SQLite3::prepare(): Unable
to prepare statement: 1, near \\\"FROM\\\": syntax
error\",\"/Volumes/Data/web/database.php\",157,{\"sql\":\"UPDATE
results \\n            SET comment = :comment \\n            FROM (\\n
               SELECT expected\\n                        , status\\n  
             FROM results\\n                WHERE report_id =
:prevReportID\\n            ) AS s\\n            WHERE
results.report_id = :workingReportID\\n            AND results.status
= s.status\"}]}",
                    "/Volumes/Data/web/database.php:157",
其中
database.php:157
是:

类CommonDB扩展了SQLite3 { ... 函数prepare($sql) { 返回父::prepare($sql); } ...
sqlite驱动程序(CLI和php中使用的)是3.35.4(来自自制)

再次检查。执行
选择sqlite\u版本()
噢,lame.3.28.0。有没有办法让本机php使用更新的驱动程序?我帮不了你。但是我相信你的代码可以不用3.33.0中引入的
更新…语法来编写,因为实际上你不需要这种自连接。真正的查询比这个人为的例子更复杂。Pa我所面临的问题之一是,在使用更新的sqlite驱动程序3.35的同时,使用已安装的自制PHP7.4版本会非常慢。我在查询中发现了一个在以前版本的驱动程序中没有出现的问题(查询计划是以不同的方式创建或执行的),并且一旦修改了查询,就可以使用更新版本的PHP和更新版本的sqlite驱动程序。