ホストプラットフォームをcPanelからPleskに切り替える際に、私のサイトの1つでスクリプトを使ってメインサイトはJoomlaの最新バージョンで動作しており、エラーなしでデータベース接続を行います。私は外部スクリプトを持っていますが、それは接続するようには見えませんが、cronジョブで実行します。私はそれをここに掲載しますので、それは私の接続クラスに関係していることを前提とする必要がmysqli :: __ construct():(HY000/1045):ユーザー 'lfc_site' @ 'localhost'のアクセスが拒否されました(パスワード:YESを使用)
mysqli::__construct(): (HY000/1045): Access denied for user 'lfc_site'@'localhost' (using password: YES)
:私はこのエラーを取得する
私は、DBのログインが含まれているcofig.iniを持っています資格情報。
[データベース] 、ユーザ名= DATABASE_USER パスワード= ****** 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のスクリプトはまったく同じ資格情報を使用して問題なく接続するようです。