За последние 24 часа нас посетили 17234 программиста и 1651 робот. Сейчас ищут 895 программистов ...

Не понятно с базой данных

Тема в разделе "PHP и базы данных", создана пользователем Fournier, 23 авг 2016.

  1. Fournier

    Fournier Новичок

    С нами с:
    23 авг 2016
    Сообщения:
    9
    Симпатии:
    0
    Здравствуйте, так вышло, что мне нужно доделать сайт за кем-то. в php новичек.
    Есть магазин на OpenCart, сегодня в БД в таблице oc_order_product в строке model изменил значение с varchar(1000) на varchar(255), после этого страницы сайта недоступны(обратное значение выставил - не помогло), браузер выдает:

    ________________________________________________________________________________________
    Warning: mysqli::mysqli() [mysqli.mysqli]: (28000/1045): Access denied for user 'u0198397_default'@'localhost' (using password: YES) in .../system/library/db/mysqli.php on line 7

    Warning: mysql_error() expects parameter 1 to be resource, object given in .../system/library/db/mysqli.php on line 10

    Warning: mysql_errno() expects parameter 1 to be resource, object given in .../system/library/db/mysqli.php on line 10

    Notice: Undefined variable: trace in .../system/library/db/mysqli.php on line 10

    Notice: Undefined variable: trace in .../system/library/db/mysqli.php on line 10

    Notice: Undefined variable: sql in .../system/library/db/mysqli.php on line 10

    Fatal error: Uncaught exception 'Exception' with message 'Error: <br />Error No: <br /> Error in: <b></b> line <b></b><br />' in .../system/library/db/mysqli.php:10 Stack trace: #0 .../system/library/db.php(9): DB\MySQLi->__construct('localhost', 'u0198397_defaul...', '_Bsg6BHd', 'u0198397_defaul...', '3306') #1 .../system/framework.php(25): DB->__construct('mysqli', 'localhost', 'u0198397_defaul...', '_Bsg6BHd', 'u0198397_defaul...', '3306') #2 .../index.php(22): require_once('/var/www/u01983...') #3 {main} thrown in .../system/library/db/mysqli.php on line 10

    ________________________________________________________________________________________


    mysqli.php доставал из резервных копий, вставлял - не помогает. содержимое:




    PHP:
    1. <?php
    2. namespace DB;
    3. final class MySQLi {
    4.     private $connection;
    5.  
    6.     public function __construct($hostname, $username, $password, $database, $port = '3306') {
    7.         $this->connection = new \mysqli($hostname, $username, $password, $database, $port);
    8.  
    9.         if ($this->connection->connect_error) {
    10.             throw new \Exception('Error: ' . mysql_error($this->connection) . '<br />Error No: ' . mysql_errno($this->connection) . '<br /> Error in: <b>' . $trace[1]['file'] . '</b> line <b>' . $trace[1]['line'] . '</b><br />' . $sql);
    11.         }
    12.  
    13.         $this->connection->set_charset("utf8");
    14.         $this->connection->query("SET SQL_MODE = ''");
    15.     }
    16.  
    17.     public function query($sql) {
    18.         $query = $this->connection->query($sql);
    19.  
    20.         if (!$this->connection->errno) {
    21.             if ($query instanceof \mysqli_result) {
    22.                 $data = array();
    23.  
    24.                 while ($row = $query->fetch_assoc()) {
    25.                     $data[] = $row;
    26.                 }
    27.  
    28.                 $result = new \stdClass();
    29.                 $result->num_rows = $query->num_rows;
    30.                 $result->row = isset($data[0]) ? $data[0] : array();
    31.                 $result->rows = $data;
    32.  
    33.                 $query->close();
    34.  
    35.                 return $result;
    36.             } else {
    37.                 return true;
    38.             }
    39.         } else {
    40.             throw new \Exception('Error: ' . $this->connection->error  . '<br />Error No: ' . $this->connection->errno . '<br />' . $sql);
    41.         }
    42.     }
    43.  
    44.     public function escape($value) {
    45.         return $this->connection->real_escape_string($value);
    46.     }
    47.  
    48.     public function countAffected() {
    49.         return $this->connection->affected_rows;
    50.     }
    51.  
    52.     public function getLastId() {
    53.         return $this->connection->insert_id;
    54.     }
    55.  
    56.     public function connected() {
    57.         return $this->connection->connected();
    58.     }
    59.  
    60.     public function __destruct() {
    61.         $this->connection->close();
    62.     }
    63. }



     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    достаточно просто остановиться на самой первой ошибке. исправив её - перестанешь видеть и остальные.
     
    Fournier и denis01 нравится это.
  3. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Как это перевести на русский? Как пишут выше, первая ошибка, всё из-за неё, дальше уже её последствия.
     
    Fournier нравится это.
  4. Fournier

    Fournier Новичок

    С нами с:
    23 авг 2016
    Сообщения:
    9
    Симпатии:
    0

    Ну да, логично, спасибо за подсказку. а в моем случае какие могут быть причины появления этой ошибки, куда копать?
     
  5. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Что ошибка-то гласит?
     
    Fournier нравится это.
  6. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Ты английский знаешь? Если нет, то воспользуйся словарём online, чтобы перевести ошибку, программа как человек, говорит что болит.
     
    Fournier нравится это.
  7. Fournier

    Fournier Новичок

    С нами с:
    23 авг 2016
    Сообщения:
    9
    Симпатии:
    0

    да это понятно. не настолько все плохо)

    Доступ запрещен для пользователя u0198397_default'@'localhost'

    сейчас зашел в пользователей БД, изменил пароль и все галочки стоят.

    Права доступа пользователя к базе данных

    Доступ к данным
    select delete insert update
    Доступ к структуре
    create drop alter index
    Другое
    grant refer lock
     
  8. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Напиши простой скрипт, отдельно с подключением к базе.
    Попробуй другого пользователи и базу завести, может это на хостинге проблемы.
     
  9. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    После смены пароля на всякий пожарный привилегии сбрось (flush privileges)
     
  10. Fournier

    Fournier Новичок

    С нами с:
    23 авг 2016
    Сообщения:
    9
    Симпатии:
    0
    Это возможно сделать из под phpMyAdmin?
     
  11. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Конечно можно.

    Открываешь пма, выбираешь сервер (если несколько), вкладка SQL, вбиваешь запрос, выполняешь.
    ИЛИ
    Открываешь пма, выбираешь сервер, вкладка пользователи, в самом низу для умеющих читать есть блок, в котором есть ссылка, после нажатия на которую пма выполняет обсуждаемую команду.
     
  12. Fournier

    Fournier Новичок

    С нами с:
    23 авг 2016
    Сообщения:
    9
    Симпатии:
    0


    открываю, вбиваю
    "
    mysql> FLUSH PRIVILEGES;
    "
    получаю ошибку в синтаксисе
    --- Добавлено ---
    а самой вкладки " Пользователи" почему-то нет(
     
  13. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    это на хостинге чтоль? вкладки пользователей не будет, если у юзера, с которым пма подключается к субд, нет прав на управление пользователями.
     
  14. Fournier

    Fournier Новичок

    С нами с:
    23 авг 2016
    Сообщения:
    9
    Симпатии:
    0
    да, на хостинге.

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

    уже и удалял её, и восстанавливал, все бестолку.
     
  15. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    у тебя проблема не в PHP а MySQL, напиши в тех. поддержку хостинга, пусть помогут.
     
    Fournier нравится это.
  16. Fournier

    Fournier Новичок

    С нами с:
    23 авг 2016
    Сообщения:
    9
    Симпатии:
    0
    Всем спасибо, решено, закрывайте.

    Решение ТУТ
     
  17. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    @Fournier зато опыт будет, что нужно читать инструкцию по установки
     
  18. Fournier

    Fournier Новичок

    С нами с:
    23 авг 2016
    Сообщения:
    9
    Симпатии:
    0
    @denis01 не могу не согласиться. просто не ожидал такого поворота событий, повторюсь - пхп только начинаю.
     
  19. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    @Fournier нет смысла учиться водить и сразу лезть в самосвал, лучше с простого начать, с основ, а не устанавливать CMS.
     
  20. Fournier

    Fournier Новичок

    С нами с:
    23 авг 2016
    Сообщения:
    9
    Симпатии:
    0
    @denis01 обстоятельства такие, что приходится доделывать сайт за другим человеком и выбора нет, кроме как пропустить Hello World и начать летать)