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

为什么不在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 关注
  • 83 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信