亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么我的班級找不到其他班級的變量

為什么我的班級找不到其他班級的變量

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 關注
  • 105 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號