【问题标题】:My PHP code to delete a row from an SQLite table using PDO not working我的 PHP 代码使用 PDO 从 SQLite 表中删除一行不起作用
【发布时间】:2019-06-13 04:08:30
【问题描述】:

下面的代码块没有按预期工作。

我已经确认 DELETE 语句(在第二行中)直接在 sqlite3 的命令行上工作,其中 OutputID = 1

$myPDO = new PDO("sqlite:$dbpath");
$stmt = $myPDO->prepare("DELETE FROM Output WHERE ID = :OutputID");
$stmt->bindParam(':OutputID', $OutputID, PDO::PARAM_INT);
$stmt->execute();
echo $stmt->rowCount();

预期结果是 1,但我得到 0

【问题讨论】:

  • 你在哪里设置$OutputID
  • 请验证 $OutputID 的值。确保它包含预期值。我在上面的代码中没有看到任何错误。很确定 $OutputID 等于 0 或 NULL ...
  • 我在PDO对象声明前设置了$OutputID,确认为1
  • 你确定是ID而不是ID?也可以告诉我们是否抛出任何错误吗?
  • 它是ID,我只是查看了抛出的错误:数据库是只读的,所以我将它移动到具有777权限的目录中,现在它可以工作了:)

标签: php sqlite pdo


【解决方案1】:

错误(通过捕获 $myPDO->errorInfo(); 返回一个数组)是数据库是只读的,所以我将数据库文件移动到具有 777 权限的目录中(我在 Linux 环境中工作,顺便说一句)并将数据库文件的权限也更改为 777。我相应地修改了代码中的数据库路径,现在它可以工作了!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多