我正在将我的主机平台从cPanel切换到Plesk,似乎遇到了一些问题在我的一个网站上有一个脚本。主站点运行在最新版本的Joomla上,并且使其数据库连接没有错误。我有一个外部脚本,我在cron作业上运行,但似乎没有连接。我得到这个错误:mysqli :: __ construct():(HY000/1045):拒绝用户'lfc_site'@'localhost'的访问(使用密码:YES)
mysqli::__construct(): (HY000/1045): Access denied for user 'lfc_site'@'localhost' (using password: YES)
我必须假设它与我的连接类这样做,我将它张贴在这里:
我有一个包含数据库登录一个cofig.ini证书。
[数据库] 用户名= database_user 密码= ****** 数据库名=数据库名称
然后我的连接类是这样的:
<?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脚本似乎使用完全相同的凭据连接没有问题?