我将数据库从MySQL移到了SQLite。
我现在收到一条错误消息:
致命错误:在非对象中调用成员函数bindParam() 第9行的C:\ inetpub \ wwwroot \ calendar \ insert.php
这是脚本:
<?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上收到此错误消息。
有人可以帮忙吗?
答案 0 :(得分:1)
STR_TO_DATE(:dp1,'%Y-%m-%d'), DATE_ADD(STR_TO_DATE(:dp2,'%Y-%m-%d'), INTERVAL 1 DAY)
SQLLite
未提供您在查询中使用的日期函数,因此prepare
调用失败,导致下一行出错。