php - Ajax 调用在 localhost 上有效,但在实时站点上在错误日志中返回“调用成员函数 prepare() on null”
问题描述
我的 Ajax 调用是发布到数据库并在不刷新页面的情况下操作页面。以下是我本地版本的一个工作示例,但是在实时站点上它会引发 POST 500 错误,并且在检查错误日志后,它会显示“未捕获的错误:在 null 上调用成员函数 prepare()”消息。
ajax.php
require_once '../Database.php';
$db = new Database;
$db->query('INSERT INTO post (values) VALUES(:values)');
数据库.php
class Database {
// define private $host, $user, $pass, $dbname
private $dbh;
private $stmt;
private $error;
public function __construct(){
$dsn = 'mysql:host=' . $this->host . ';dbname=' . $this->dbname;
$options = array(
PDO::ATTR_PERSISTENT => true,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
);
$this->dbh = new PDO($dsn, $this->user, $this->pass, $options);
}
public function query($sql){
$this->stmt = $this->dbh->prepare($sql);
}
}
解决方案
推荐阅读
- reactjs - 使用 JEST 测试服务器时如何访问 process.env 中的 RAZZLE 变量?
- mudblazor - 即使组件填充了数据,MudBlazor 的自动完成功能也不起作用
- android - 如何使用 AppCompatActivity 使 Actionbar 的选项菜单的波纹效果不超过圆角边界?
- pandas - groupby.median() 和 groupby.transform('median') 有什么区别
- ruby-on-rails - 【Rails】如何在route.rb中写入子目录路径?
- javascript - Mutation Observer 观察其子元素发生变化的父 DOM 元素
- ios - 如何在我的 Swift 应用程序中向多个单一联系人发送短信?
- flutter - 如何在 Flutter Web 中使用 lib assets_audio_player
- flutter - 每 50 毫秒 Flutter 任务
- session - NextJs 受 Next Auth 保护的 API