如何使用PHP的include连接到数据库

时间:2018-11-08 18:29:16

标签: php mysqli database-connection

我正在尝试使用配置文件连接到数据库,该文件是我的Joomla网站的一部分。
我的配置文件如下:

<?php
class JConfig {
    public $dbtype = 'mysqli';
    public $host = 'localhost';
    public $user = 'xxxx';
    public $password = 'xxxx';
    public $db = 'xxxx';
    public $dbprefix = 'xxxx_';
}

下面是包含配置文件的页面:

<?php
include("configuration.php");

// Create connection
$conn = mysqli_connect($host, $user, $password, $db);

// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

$sql = "SELECT id, navn, email FROM XXXX";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
    // Output data of each row
    while ($row = mysqli_fetch_assoc($result)) {
        echo "id: " . $row["id"]. " - Name: " . $row["navn"]. " " . $row["email"]. "<br>";
    }
} else {
    echo "0 results";
}

mysqli_close($conn);

但是,由于出现以下错误消息,我无法连接到数据库:

  

连接失败:对用户“ @'localhost”的访问被拒绝(使用密码:否)

我认为问题可能是因为配置文件的所有变量前面都有public


问题:由于Joomla脚本需要使用变量,但又如何避免出错,我该如何保持变量公开?

1 个答案:

答案 0 :(得分:1)

假设路径正确,请执行以下操作:

tap

简单来说,配置文件包含一个名为map的类,因此您必须实例化该类并访问它的公共属性。

其他内容

不使用require require include,因为此配置需要脚本其余部分才能起作用,include只会忽略丢失的文件。 Require将产生一个错误,并在文件丢失/找不到时让您知道出了什么问题。此外,请使用一次require,因为您不能多次重新定义相同的类。

PS。您不需要在include / require上使用require_once "configuration.php"; $Conf = new JConfig; // Create connection $conn = mysqli_connect($Conf->host, $Conf->user, $Conf->password, $Conf->db); ,对于没有参数的构造也是如此……(我很懒,所以我不喜欢将这些东西打出来)

享受!