为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我的班级找不到其他班级的变量

为什么我的班级找不到其他班级的变量

PHP
红颜莎娜 2022-11-04 16:34:37
我是 OOP 的新手,为什么我在其他文件中的类在我包含的其他类中找不到变量..?我尝试发送变量 $db 但它给了我错误。第一课<?php//making Database connectionclass DBconnection{    public function __construct()    {        DEFINE("DB_USER", "root"); // username database        DEFINE("DB_PASS", ""); // password database        try {            $db = new PDO("mysql:host=localhost;dbname=php_opdracht2", DB_USER, DB_PASS); //host & database name            $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);            echo "Connected successfully";        } catch (PDOException $e) {            echo $e->getMessage();        }    }}//running the class DBconnection$obj = new DBconnection();第二类(另一个 .php 文件)<?php//getting the database connectionrequire_once('DBconnection.php');//getting the data from the databaseclass Controller{    public function processing()    {        try {            $query   = "SELECT * FROM information";            $sth     = $db->query($query); //why does it not find $db..        } catch (PDOException $e) {            echo $e->getMessage();        }    }}$obj3 = new Controller();$obj3->processing();
查看完整描述

1 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

在您的 DBconnection 类中,声明一个公共变量来保存数据库连接


<?php


//making Database connection

class DBconnection {


    public $db;


    public function __construct() {

        DEFINE("DB_USER", "root"); // username database

        DEFINE("DB_PASS", ""); // password database

        try {

            $this->db = new PDO("mysql:host=localhost;dbname=php_opdracht2", DB_USER, DB_PASS); //host & database name

            $this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

            echo "Connected successfully";

        } catch (PDOException $e) {

            echo $e->getMessage();

        }

    }


}

然后在另一个类中,访问它如下


<?php


//getting the database connection

require_once('DBconnection.php');


//getting the data from the database

class Controller {


    public function processing() {

        try {

            $connection = new DBconnection(); #call db class

            $query = "SELECT * FROM information";

            $sth = $connection->db->query($query); //access the db variable created in db class

        } catch (PDOException $e) {

            echo $e->getMessage();

        }

    }


}


查看完整回答
反对 回复 2022-11-04
  • 1 回答
  • 0 关注
  • 129 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号