在PHP中设置数据库连接类

Ale*_*uck 5 php mysql database

最近向我介绍了PHP中的类的概念,经过一些研究,我得出的结论是,我需要将数据库相关的函数存储在一个类中,以便以后访问。它在大多数情况下都有效,但是我仍然对某些用例感到困惑。例如,

以下是我通常如何连接到数据库并在表中显示用户ID信息的示例

dbcon.php:

<?php
$con = mysqli_connect("host","username","password","database") or die("Couldn't connect");

require_once("functions.php");
?>
Run Code Online (Sandbox Code Playgroud)

functions.php

function getUserInfo($id) {
    $query = mysqli_query($con, "SELECT * FROM users WHERE id = '$id'");
    return mysqli_fetch_array($query);
}
Run Code Online (Sandbox Code Playgroud)

一些随机文件:

require_once("dbcon.php");

$result = mysqli_query($con, "SELECT * FROM tablename");
while ($row = mysqli_fetch_assoc($result)) {
    $userinfo = getUserInfo($row['userid']);
    echo $userinfo['name'];
}

?>
Run Code Online (Sandbox Code Playgroud)

我觉得这种查询数据库和显示信息的方法不是最简洁或最有效的方法。我看了这个文章用类与我在课堂上创建的数据库和呼叫功能篡改。

我的第一个问题是:当我尝试在functions.php中访问$ con时,它是未定义的。如何通过require_once函数将dbcon.php中的变量传递给functions.php?

我也想知道最好的方式来存储我的数据库连接,以及是否有任何教程来设置它。

我希望你明白。

Ana*_*Die 5

检查V2-growcer中的getAttributesByShopId()函数并在任何地方进行更正。

您可以这样操作:-

dbconnection.php:-

<?php
Class DbConnection{
    function getdbconnect(){
        $conn = mysqli_connect("host","username","password","database") or die("Couldn't connect");
        return $conn;
    }
}
?>
Run Code Online (Sandbox Code Playgroud)

Function.php:-

<?php
require_once('Dbconnection.php');
Class WorkingExamples{
    function getUserInfo($id) {
        $Dbobj = new DbConnection(); 
        $query = mysqli_query($Dbobj->getdbconnect(), "SELECT * FROM users WHERE id = '$id'");
        return mysqli_fetch_array($query);
    }
}
$data = new WorkingExamples();
echo "<pre/>";print_r($data->getUserInfo(3));
?>
Run Code Online (Sandbox Code Playgroud)

注意:-这是一个示例,请根据您的要求更改值来尝试并获得结果。