如何使用 PHP 的包含连接到数据库
How to connect to a database using PHP's include
我正在尝试使用属于我的 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);
但是,我无法连接到数据库,因为我收到以下错误消息:
Connection failed: Access denied for user ''@'localhost' (using password: NO)
我认为问题可能是因为配置文件在所有变量前面都有 public
。
问题:我怎样才能避免保留变量 public,因为 Joomla 脚本需要它们,但要避免错误?
假设路径正确,改为执行此操作:
require_once "configuration.php";
$Conf = new JConfig;
// Create connection
$conn = mysqli_connect($Conf->host, $Conf->user, $Conf->password, $Conf->db);
简单来说,配置文件包含一个名为 JConfig
的 class,因此您必须实例化该 class 并访问它的 public 属性。
其他
使用 require not include,因为此脚本的其余部分需要此配置才能工作,并且 include 将忽略丢失的文件。 Require 会产生错误,并在文件 missing/no 找到时让您知道错误。此外,使用 require 一次,因为您不能多次重新定义相同的 class。
PS。你不需要 include/require 上的 ()
,对于没有参数的构造也是如此......(我很懒,所以我不喜欢输入这些东西)
尽情享受吧!
我正在尝试使用属于我的 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);
但是,我无法连接到数据库,因为我收到以下错误消息:
Connection failed: Access denied for user ''@'localhost' (using password: NO)
我认为问题可能是因为配置文件在所有变量前面都有 public
。
问题:我怎样才能避免保留变量 public,因为 Joomla 脚本需要它们,但要避免错误?
假设路径正确,改为执行此操作:
require_once "configuration.php";
$Conf = new JConfig;
// Create connection
$conn = mysqli_connect($Conf->host, $Conf->user, $Conf->password, $Conf->db);
简单来说,配置文件包含一个名为 JConfig
的 class,因此您必须实例化该 class 并访问它的 public 属性。
其他
使用 require not include,因为此脚本的其余部分需要此配置才能工作,并且 include 将忽略丢失的文件。 Require 会产生错误,并在文件 missing/no 找到时让您知道错误。此外,使用 require 一次,因为您不能多次重新定义相同的 class。
PS。你不需要 include/require 上的 ()
,对于没有参数的构造也是如此......(我很懒,所以我不喜欢输入这些东西)
尽情享受吧!