我正在將我的主機平臺從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腳本似乎使用完全相同的憑據連接沒有問題?