Здравствуйте, так вышло, что мне нужно доделать сайт за кем-то. в 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: <?php namespace DB; final class MySQLi { private $connection; public function __construct($hostname, $username, $password, $database, $port = '3306') { $this->connection = new \mysqli($hostname, $username, $password, $database, $port); if ($this->connection->connect_error) { 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); } $this->connection->set_charset("utf8"); $this->connection->query("SET SQL_MODE = ''"); } public function query($sql) { $query = $this->connection->query($sql); if (!$this->connection->errno) { if ($query instanceof \mysqli_result) { $data = array(); while ($row = $query->fetch_assoc()) { $data[] = $row; } $result = new \stdClass(); $result->num_rows = $query->num_rows; $result->row = isset($data[0]) ? $data[0] : array(); $result->rows = $data; $query->close(); return $result; } else { return true; } } else { throw new \Exception('Error: ' . $this->connection->error . '<br />Error No: ' . $this->connection->errno . '<br />' . $sql); } } public function escape($value) { return $this->connection->real_escape_string($value); } public function countAffected() { return $this->connection->affected_rows; } public function getLastId() { return $this->connection->insert_id; } public function connected() { return $this->connection->connected(); } public function __destruct() { $this->connection->close(); } }
Как это перевести на русский? Как пишут выше, первая ошибка, всё из-за неё, дальше уже её последствия.
Ну да, логично, спасибо за подсказку. а в моем случае какие могут быть причины появления этой ошибки, куда копать?
Ты английский знаешь? Если нет, то воспользуйся словарём online, чтобы перевести ошибку, программа как человек, говорит что болит.
да это понятно. не настолько все плохо) Доступ запрещен для пользователя u0198397_default'@'localhost' сейчас зашел в пользователей БД, изменил пароль и все галочки стоят. Права доступа пользователя к базе данных Доступ к данным select delete insert update Доступ к структуре create drop alter index Другое grant refer lock
Напиши простой скрипт, отдельно с подключением к базе. Попробуй другого пользователи и базу завести, может это на хостинге проблемы.
Конечно можно. Открываешь пма, выбираешь сервер (если несколько), вкладка SQL, вбиваешь запрос, выполняешь. ИЛИ Открываешь пма, выбираешь сервер, вкладка пользователи, в самом низу для умеющих читать есть блок, в котором есть ссылка, после нажатия на которую пма выполняет обсуждаемую команду.
открываю, вбиваю " mysql> FLUSH PRIVILEGES; " получаю ошибку в синтаксисе --- Добавлено --- а самой вкладки " Пользователи" почему-то нет(
это на хостинге чтоль? вкладки пользователей не будет, если у юзера, с которым пма подключается к субд, нет прав на управление пользователями.
да, на хостинге. а как быть? куда копать? пхп вообще тёмный лес для меня... --- Добавлено --- пс: на сайте несколько поддоменов по городам, на каждый - своя база --- Добавлено --- вообще шевелил базу только одного города. уже и удалял её, и восстанавливал, все бестолку.
@denis01 не могу не согласиться. просто не ожидал такого поворота событий, повторюсь - пхп только начинаю.
@Fournier нет смысла учиться водить и сразу лезть в самосвал, лучше с простого начать, с основ, а не устанавливать CMS.
@denis01 обстоятельства такие, что приходится доделывать сайт за другим человеком и выбора нет, кроме как пропустить Hello World и начать летать)