Member 13140806 Ответов: 1

Я загрузил веб-сайт в Панель C. Когда я пытаюсь получить доступ к нему из своего браузера я получаю следующую ошибку:


Предупреждение: mysql_connect(): Доступ запрещен для пользователя 'root'@'localhost' (используя пароль: нет) в /home/anyonstr/school.anyonstrendtakesolution.co.ke/classes/Database.class.php на линии 128

Фатальная ошибка: ошибка базы данных 0:
linkID == False. Соединение не удалось. в /доме/anyonstr/школе.anyonstrendtakesolution.co.ke/classes/Database.class.php на линии 174.

это мой код здесь:
class Database
{
# Constructor. Create an instance of this class with this.
# You would generally need just one.


private static $_singleton;
private $linkID;
private function __construct($hostname, $username, $password,            
$database, 
$debug=False){
    $this->debug = $debug;
    $this->linkID = 0;
    $this->queryID = 0;
    $this->queryCount = 0;
    $this->errNo = 0;
    $this->errStr = '';

    //$this->_connection = mysql_connect();
     if (! ($hostname and $username and $database))
        $this->halt('Missing parameters.');

    $this->linkID = mysql_connect($hostname, $username, $password);

    if (! $this->linkID)
        $this->halt('linkID == False. Connect failed.');

    if (! mysql_select_db($database, $this->linkID))
        $this->halt("Cannot use database '$database'.");

   }
   public static function getInstance($hostname, $username, $password, 
  $database, $debug=False){
    if (is_null (self::$_singleton)) {
        self::$_singleton = new Database($hostname, $username, $password, 
  $database, $debug=False);
    }
    return self::$_singleton;
    }


   /*  function Database($hostname, $username, $password, $database, 
   $debug=False)
   {
    $this->debug = $debug;
    $this->linkID = 0;
    $this->queryID = 0;
    $this->queryCount = 0;
    $this->errNo = 0;
    $this->errStr = '';

    if (! ($hostname and $username and $database))
        $this->halt('Missing parameters.');


    $this->linkID = mysql_connect($hostname, $username, $password);


    if (! $this->linkID)
        $this->halt('linkID == False. Connect failed.');

    if (! mysql_select_db($database, $this->linkID))
        $this->halt("Cannot use database '$database'.");
    }*/

    # Halt because an error occured.
    function halt($msg)
   {
    trigger_error(
        sprintf("Database error %d: %s<br />%s\n",
                $this->errNo, $this->errStr, $msg),
        E_USER_ERROR);
    }


линия 128 Кодекса составляет $это-&ГТ;ссылку = функцию mysql_connect($имя, $имя пользователя, $пароль); и строка 173-это E_USER_ERROR);

Что я уже пробовал:

Я попытался удалить пользователя и пароль из своей базы данных в панели c, но все равно не работает.

1 Ответов

Рейтинг:
0

OriginalGriff

Когда вы публикуете веб-сайт, он использует другую базу данных, чем та, которую вы подготовили для разработки (или если это не так, вы очень быстро пожалеете об этом!)

Это означает, что вам нужно получить доступ к нему через правильную строку подключения в коде вашего сайта - и большинство хостинговых служб разделяют пользователей между несколькими серверами баз данных, чтобы снизить общую нагрузку до управляемого уровня.

Мы не можем сказать вам, каким должно быть имя вашего экземпляра, идентификатор пользователя и пароль - вам нужно будет связаться с вашим хостингом, чтобы узнать, но это не будет "root" и вряд ли будет "localhost".

И я настоятельно рекомендую вам найти способ сохранить сведения о соединении во внешнем файле - так, чтобы вам вообще не нужно было менять свой код, чтобы выпустить новую версию в будущем: изменения всегда сопряжены с риском ошибки, и последнее, что вы хотите, - это либо сбой на производственном сайте, либо система разработки, использующая производственные данные!