在PHP中设置数据库连接类

问题描述 投票:5回答:1

最近我介绍了PHP中的类的概念,经过一些研究后我得出结论,我需要在类中存储数据库相关的函数以便以后访问。它在很大程度上起作用,但是我仍然困惑的一些用例。例如,

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

dbcon.php:

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

require_once("functions.php");
?>

的functions.php

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

一些随机文件:

require_once("dbcon.php");

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

?>

我不觉得这种查询数据库和显示信息的方法是最有效或最有效的方法。我读了关于使用类来篡改数据库并调用我在类中创建的函数的this文章。

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

我也想知道存储我与数据库的连接的最佳方法是什么,以及是否有任何关于如何设置它的教程。

我希望你明白了哈哈。

php mysql database
1个回答
4
投票

你可以这样做: -

Dbconnection.php: -

<?php
Class DbConnection{
    function getdbconnect(){
        $conn = mysqli_connect("host","username","password","database") or die("Couldn't connect");

        return $conn;
    }
}
?>

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));
?>

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

© www.soinside.com 2019 - 2024. All rights reserved.