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

使用PDO从SQLite表删除数据的PHP代码无法正常运行

解决PHP PDO删除SQLite数据时rowCount返回0的问题

我来帮你排查这个问题,你遇到的情况确实有点奇怪——命令行能正常执行删除,但PHP PDO里rowCount()返回0,大概率是代码里的细节没处理好,给你几个具体的排查和解决方向:

  • 先确认变量$OutputID的实际值
    有时候我们以为变量是1,但实际可能是字符串"1"、空值或者其他错误值。可以在绑定参数前加一句var_dump($OutputID);,看看输出是不是int(1),确保变量值完全符合预期。

  • 开启PDO错误模式,捕获潜在异常
    PDO默认是静默错误模式,就算执行出错也不会主动提示,这会让我们错过关键信息。在初始化PDO之后添加这行代码,开启异常模式:

    $myPDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    

    这样如果执行过程中有语法错误、权限问题或者其他异常,会直接抛出错误信息,帮你快速定位问题。

  • 尝试用bindValue()代替bindParam()
    bindParam()是绑定变量的引用,虽然你指定了PDO::PARAM_INT,但某些情况下可能因为变量类型的隐性转换导致问题。换成bindValue()试试,它是直接绑定值:

    $stmt->bindValue(':OutputID', $OutputID, PDO::PARAM_INT);
    
  • 硬编码参数测试,排除变量绑定问题
    暂时把SQL语句里的参数换成固定值,比如:

    $stmt = $myPDO->prepare("DELETE FROM Output WHERE ID = 1");
    $stmt->execute();
    echo $stmt->rowCount();
    

    如果这样rowCount()返回1,说明问题出在变量绑定环节;如果还是返回0,那就要再确认表名、字段名是否和数据库里的完全一致(比如有没有大小写差异,SQLite在部分系统下对大小写敏感)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 09:04:33