PHP 错误信息 : Fatal error: Call to a member function bindParam() on a non-object

标签 php mysql sqlite pdo

我将我们的数据库从 MySQL 迁移到了 SQLite。

我现在收到一条错误消息:

Fatal error: Call to a member function bindParam() on a non-object in C:\inetpub\wwwroot\calendar\insert.php on line 9

这是脚本:

<?php
session_start();

$dbh = new PDO('sqlite:database.sqlite');

$stmt = $dbh->prepare("INSERT INTO events (fn, sn, bn, sd, ed) VALUES (:fn, :sn, :bn, STR_TO_DATE(:dp1,'%Y-%m-%d'), DATE_ADD(STR_TO_DATE(:dp2,'%Y-%m-%d'), INTERVAL 1 DAY))");

foreach ($_POST as $key => $value) {
    $stmt->bindParam("$key", $_POST[$key]);
}

$stmt->execute();

header("Location: /");
?>

我猜这与 SQLite 有关,因为我在 MySQL 上没有收到此错误消息。

有人可以帮忙吗?

最佳答案

STR_TO_DATE(:dp1,'%Y-%m-%d'), DATE_ADD(STR_TO_DATE(:dp2,'%Y-%m-%d'), INTERVAL 1 DAY)

SQLLite 不提供您在查询中使用的日期函数,因此您的 prepare 调用失败,导致下一行出现错误。

关于PHP 错误信息 : Fatal error: Call to a member function bindParam() on a non-object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27485024/

相关文章:

python - 我是否应该期望 Python sqlite3 用户定义的函数保留在 SQLite 数据库中?

Python/Sqlite 程序,写成浏览器应用程序还是桌面应用程序?

php - phpwebsocket-未定义函数socket_create()-在Windows/WAMP上启用php_sockets

javascript - 第二个相关下拉列表未填充数据

即使使用合并,MySQL也会返回 'empty result'

mysql - 使用sql查询获取最大折扣

php - SQLSTATE[42000] : Syntax error or access violation: 1065 Query was empty (SQL: )

javascript - 为我的 laravel 应用程序预览/放大/缩放图像 api

mysql - 在数据库中存储邮件的最佳方式(后缀)

node.js - 在 NodeJS 中访问 SQLite3 数据库