首页 > 解决方案 > 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);
      }
    }

标签: phpajax

解决方案


推荐阅读