【发布时间】:2018-04-24 06:29:52
【问题描述】:
我正在将我的托管平台从 cPanel 切换到 Plesk,并且我的一个网站上的脚本似乎存在一些问题。主站点在最新版本的 Joomla 上运行,并使其与数据库连接没有错误。我有一个在 cron 作业上运行的外部脚本,但似乎没有连接。我收到此错误:
mysqli::__construct(): (HY000/1045): Access denied for user 'lfc_site'@'localhost' (using password: YES)
我必须假设它与我的连接类有关,所以我将在此处发布:
-
我有一个包含数据库登录凭据的 cofig.ini。
[数据库] 用户名 = 数据库用户 密码 = ****** dbname = 数据库名称
那么我的连接类是这样的:
<?php
//Database connection class
class Db {
protected static $connection;
public function connect() {
if(!isset(self::$connection)) {
global $config;
self::$connection = new mysqli('localhost:3306',$config['username'],$config['password'],$config['dbname']);
}
if(self::$connection === false) {
return false;
}
return self::$connection;
}
public function query($query) {
$connection = $this -> connect();
$result = $connection -> query($query);
return $result;
}
public function select($query) {
$rows = array();
$result = $this -> query($query);
if($result === false) {
return false;
}
while ($row = $result -> fetch_assoc()) {
$rows[] = $row;
}
return $rows;
}
public function error() {
$connection = $this -> connect();
return $connection -> error;
}
public function quote($value) {
$connection = $this -> connect();
return "'" . $connection -> real_escape_string($value) . "'";
}
}
?>
然后最后我的脚本运行查询......
<?php
require_once('/var/www/vhosts/user/httpdocs/db.php');
$config = parse_ini_file('/var/www/vhosts/user/httpdocs/config.ini');
$db = new Db();
$rows = $db -> select('
SELECT *
FROM milestones
WHERE status != "arrived"
AND departure_time BETWEEN (NOW() - INTERVAL 12 HOUR)
AND (NOW() + INTERVAL 12 HOUR)
AND type = "4"
');
?>
我猜可能有一个模块未启用,它禁止此脚本正确建立连接,正如我所说,Joomla 脚本似乎使用完全相同的凭据连接没有问题?
【问题讨论】:
标签: php mysql centos mariadb plesk