我将我们的数据库从 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/