我想在PHP中显示同一类和差异函数中的表行

I want to display table rows in same class and difference function in PHP

提问人:Pirune 提问时间:1/6/2021 最后编辑:DharmanPirune 更新时间:1/7/2021 访问量:28

问:

如何在PHP中显示“我的用户”表中的行 arr() 函数无法连接数据库

class DB {
    protected $db_server = 'localhost';
    protected $db_username = 'root';
    protected $db_password = 'root';
    protected $db_name = 'dbname';
    public function connect() {
        $connect_db = new mysqli($this->db_server, $this->db_username, $this->db_password, $this->db_name);
        if(mysqli_connect_errno()) {
            printf("Connection failed!", mysqli_connect_error());
            exit();
        } else {
            echo "connected";
        }
        return true;
    }
    function arr() {
        $conn = $this->connect();
        if($query = mysqli_query($conn, "SELECT * FROM users")) {
            echo 'row is ' . mysqli_num_rows($query);
        }
    }
}
$db = new DB();
$db->arr();

结果 -> “连接的行是 ” 而不是计算行数

PHP 函数 oop mysqli

评论

3赞 Professor Abronsius 1/6/2021
方法不返回连接对象connect
0赞 M. Eriksson 1/6/2021
如果多次调用该方法,还应存储连接并返回相同的连接。您现在拥有它的方式,每次调用时都会创建一个新连接,这只会产生开销(连接成本高昂)。connect()connect()

答:

-1赞 ADyson 1/6/2021 #1

在函数中,将connect()

return true;

return $connect_db;

以便它返回 Connection 对象。然后,您可以在其他功能中使用它。

评论

0赞 Pirune 1/7/2021
返回 $connect_db;:D
0赞 ADyson 1/7/2021
@Pirune对不起,是的,我匆匆忙忙地写了。我总是把我的连接对象称为对象,这只是一种习惯。我已经更新了答案:-)$conn