我正在尝试使用配置文件连接到数据库,该文件是我的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脚本需要使用变量,但又如何避免出错,我该如何保持变量公开?
答案 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);
,对于没有参数的构造也是如此……(我很懒,所以我不喜欢将这些东西打出来)
享受!