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

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

為什么不在php中使用數據庫函數類

為什么不在php中使用數據庫函數類

PHP
Cats萌萌 2022-07-16 17:37:49
我采用了這個例子中給出的代碼:PHP 數據庫連接類但是我使用上面的鏈接更改了代碼,如下所示:class Database {    public function connect() {        define('DB_HOST', 'localhost');        define('DB_NAME', 'university');        define('DB_USER', 'root');        define('DB_PASSWORD', 'root');        $db = mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME);    }}function Information(){    Database::connect();    $query = "SELECT * FROM student WHERE id "; $result = mysqli_query($db, $query);        while($row = mysqli_fetch_array($result)) {            echo $row['name'];        }}Information();它給出了錯誤:Notice: Undefined variable: db in /Applications/XAMPP/file.php on line 12.可能是什么原因,我做錯了什么?
查看完整描述

2 回答

?
智慧大石

TA貢獻1946條經驗 獲得超3個贊

創建一個所有方法都可以共享的屬性:


<?php


class Database 

{

    private $db;


    public function __construct() 

    {

        define('DB_HOST', 'localhost');

        define('DB_NAME', 'university');

        define('DB_USER', 'root');

        define('DB_PASSWORD', 'root');

        $this->db = mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME);

    }


    public function query($sql)

    {

        return mysqli_query($this->db, $query);

    }

}

然后重構你的功能


function Information()

{

    $db = new Database();

    $sql = "SELECT * FROM student WHERE id "; 

    $result = $db->query($sql);

    while($row = mysqli_fetch_array($result)) {

         echo $row['name'];

    }

}


Information();


查看完整回答
反對 回復 2022-07-16
?
嗶嗶one

TA貢獻1854條經驗 獲得超8個贊

該變量db對于這一行的函數是未知的:

由于$db是類屬性,只需將其創建為類中的變量

 private $db;

并將其設置在連接函數中,如下所述delboy1978uk

$this->db = mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME);


查看完整回答
反對 回復 2022-07-16
  • 2 回答
  • 0 關注
  • 105 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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