【发布时间】:2016-04-30 13:20:34
【问题描述】:
我最近被介绍到 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.net/manual/en/class.mysqli.php 实际上已经有一个类 :)
-
@developernaren 好当。你每天都会学到新东西:D
-
如果您创建一个类来管理您的连接,并且您使用 require_once 命令添加该类文件。你只需要实例化类
$myDBclass = new DBClass(),然后使用你类中的con变量,比如$myDBClass->con