php - fatal error :调用未定义的方法 connectDB::prepare()

标签 php mysql mysqli

我尝试使用类 connectDB 来连接到 MySQL 数据库来执行简单的 CRUD。然后,当我尝试执行 RecipesModel 类的 delRecipe 方法时,系统显示错误。

Fatal error: Call to undefined method connectDB::prepare()

调用方法prepare()的正确方法是吗?为什么不被识别?

这是connectDB的代码(文件connectDB.php)

class connectDB {

    private $address='localhost';
    private $db_name='db-name';
    private $user='root';
    private $pswd='psswd';

    private $sql;

    public function __construct() {
        $this->sql = new mysqli($this->address,$this->user,$this->pswd,$this->db_name);
        if (mysqli_connect_error()) {
            die('Error de Conexion: '. mysqli_connect_errno().' - '.mysqli_connect_error());
        }
        return $this->sql;
    }

    public function __destruct() {
        if(!mysqli_close($this->sql)) {
            die('ERROR!:'.$this->sql->error);
        }
    }

    public function execute($query) {
        $res = $this->sql->query($query);
        if ($res) {
            return $res;    
        }
        else {
            die('ERROR!:'.$this->sql->error);
        }
    }
}

以及删除行的类。

<?php
require_once('connectDB.php');

class RecipesModel {

    private $db;

    public function __construct() {
        $this->db = new connectDB();
    }

    public function delRecipe($id) {
        if (is_numeric($id)) {
            $sql = 'DELETE FROM t_platos WHERE ID_pl= ?';
            $this->db->prepare($sql);
            return $this->db->execute(array($id));
        }
    }
}

$recipe = new RecipesModel();
$res = $recipe->delRecipe(1);

?>

最佳答案

你的误解是这样的:

    return $this->sql;

您无法在构造函数中返回您选择的内容。构造函数返回的值始终是该类的对象实例。

关于php - fatal error :调用未定义的方法 connectDB::prepare(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44477331/

相关文章:

php - 我可以动态加入mysql表吗

php - mysql转换问题。警告:mysqli_fetch_all()期望参数1为mysqli_result,在中给出 bool 值

PHP/MySQL : mysqli prepared statement insert same value multiple times within for loop

php - mpdf 发票未按我想要的方式生成

php - ics 文件 mime 类型

php - 如何在一个循环中显示按日期列排序的多个 mysql 表的结果

php - 调用未定义函数mysql_connect()错误

php - 如何安装php 5.3.14 ubuntu 12.10

php - 在 MySQL 中是否可以通过时间戳和点击次数按受欢迎程度排序?

php - 带有 ON DUPLICATE KEY UPDATE 的 SQL 查询不起作用