Php 致命错误:调用未定义的方法DBEngine::prepare()

Php 致命错误:调用未定义的方法DBEngine::prepare(),php,pdo,Php,Pdo,我试图创建一个函数,每当我点击按钮,该函数就会在数据库中插入一些东西。我用PDO创建它,但它似乎不起作用,它给了我一个错误。如果有人能帮忙,请给我指出正确的方向致命错误:调用未定义的方法DBEngine::prepare()第87行 数据库配置: <?php class DBEngine { public $con; public $errors; public function __

我试图创建一个函数,每当我点击按钮,该函数就会在数据库中插入一些东西。我用PDO创建它,但它似乎不起作用,它给了我一个错误。如果有人能帮忙,请给我指出正确的方向<代码>致命错误:调用未定义的方法DBEngine::prepare()第87行

数据库配置:

<?php
    class   DBEngine
        {
            public  $con;
            public  $errors;
            public  function __construct($host="mysql10.000webhost.com",$db = "a6150953_test",$user="a6150953_henri",$pass="hajvan123")
                {
                    try {
                            $this->con  =   new PDO("mysql:host=$host;dbname=$db",$user,$pass, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));
                        }
                    catch (Exception $e) {
                          $this->errors['connect']['message']    =   $e->getMessage();
                          $this->errors['connect']['error_code'] =   $e->getCode();
                        }
                }

                public  function Fetch($_sql)
                {
                    $query  =   $this->con->prepare($_sql);
                    $query->execute();
                    $this->errors['fetch'][]    =   $query->errorInfo();

                    if($query->rowCount() > 0) {
                            while($rows = $query->fetch(PDO::FETCH_ASSOC)) {
                                    $array[]    =   $rows;
                                }
                        }

                    return (isset($array) && $array !== 0 && !empty($array))? $array: 0;
                }

            // Simple write to db method
            public  function Write($_sql)
                {
                    $query  =   $this->con->prepare($_sql);
                    $query->execute();
                    $this->errors['insert'][]   =   $query->errorInfo();
                }
        }

// To use/initialize
$con = new DBEngine(); ?>

prepare
是PDO方法,而不是
DBEngine
类中的方法。您可以这样定义方法:

public function prepare($query) {
    return $this->con->prepare($query);
}

我看不出有什么必要为
pdo
使用具有相同方法的类提供包装。请帮助?解决方案我对DBEngine对象上的方法不太熟悉。最有可能的$this->db是您的DBEngine实例$q=$this->db->prepare($sql);“那就不行了!”罗纳德说,“那我该怎么修呢?”。你能告诉我哪条线是出错的吗?(其中一段)谢谢你,伙计。成功了。我的数据进入数据库。快速且易于理解的解决方案
public function insert($is_uid, $def_uid){
        $sql        =   "INSERT INTO follow (user_one, user_two) VALUES (:user_one, :user_two)";
        $q = $this->db->prepare($sql);
        $q -> execute(array(':user_one'=>$is_uid, ':user_two'=>$def_uid));

        return $q;
    }
    public function delete($is_uid, $def_uid){
        $sql        =   "DELETE FROM follow WHERE user_one = '$is_uid' AND user_two = '$def_uid'";
        $result     =   $this->db->Fetch($sql);

        return $result;
    }
public function prepare($query) {
    return $this->con->prepare($query);
}