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

使用PHP向SQLite插入记录无报错不生效问题求助

问题根因

你代码里的提交触发判断逻辑不生效,核心原因是提交按钮没有设置name="submit"属性:
你的表单提交按钮代码是:

<button type="submit">Submit</button>

而后台判断表单是否提交的逻辑是isset($_POST['submit']),因为按钮没有设置name属性,提交后$_POST数组里根本不会存在submit这个键,所以代码永远都走渲染表单的分支,根本不会执行插入数据库的逻辑,自然不会有数据写入,也不会有任何报错。

修复方案

给提交按钮加上name属性即可:

<button type="submit" name="submit">Submit</button>

改完之后提交表单就能正常触发插入逻辑了。

其他可选排查点(改完上述内容仍插入失败可逐一核对)

  • 检查database.db文件的读写权限:运行php -S的进程需要拥有该文件的读写权限,Linux/macOS下可以执行chmod 666 database.db临时开放权限测试
  • 确认students_tb表的id字段设置了INTEGER PRIMARY KEY AUTOINCREMENT:如果id没有设置自增,插入时不指定id值会触发写入失败
  • 开启PDO报错模式方便排查:在实例化PDO之后加一行代码,强制抛出异常,后续遇到数据库层面错误会直接输出提示:
$db = new PDO("sqlite:database.db");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 20:54:06