Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Нет доступа к таблицам базы данных MYSQL  (Прочитано 1362 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн vkb1969

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Установил на виртуальную машину UBUNTU последней версии. Настроил доступ к сайту. Начальные страницы сайта в браузерах отображаются нормально, но те страницы где есть обращение к базе MYSQL не загружаются. Стал проверять и установил, что соединение с базой есть, но таблицы не открываются. Сайт рабочий, перенесен в UBUNTU с OPENSERVER под MS WINDOWS 7. У пользователя есть все привилегии.

Class CFileCarDoc {
      const DB_NAME = "autodoc";   
     const DB_HOST = "localhost";
     Public $_db;
      Public $nom;
     //соединение с БД
     public function __construct($db_login,$db_password){
         $this->_db = new mysqli(self::DB_HOST, $db_login, $db_password, self::DB_NAME); 
          if ($this->_db->connect_error) {
            die('Ошибка подключения (' . $mysqli->connect_errno . ') '
            . $this->_db->connect_error);
         }
     }    
     //чтение таблицы
         public function getsotr() {
   $sql = 'SELECT id, fio FROM sotrdoc ORDER BY id';
   if (!$result = $this->_db->query($sql))
       return false;
     $items=$result->fetch_all(MYSQLI_ASSOC);
    return $items;
}
 
Страница, которая не работает

<?PHP
  include "CFileDoc.class.php";

  $dt = time();   
 //проверка введенной даты

  session_start();
  //инициализируем класс и установим соединение сБД
  $cfcar = new CFileCarDoc($_SESSION['user'],$_SESSION['pass']);
  //список сотрудников
  $asotr=$cfcar->getsotr();  - здесь страница повисает, сообщений об ошибках нет.

Что я упустил?

   
   
« Последнее редактирование: 15 Февраля 2016, 17:26:09 от vkb1969 »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Нет доступа к таблицам базы данных MYSQL
« Ответ #1 : 15 Февраля 2016, 18:08:50 »
Вы ошиблись разделом. Вам сюда

Онлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Нет доступа к таблицам базы данных MYSQL
« Ответ #2 : 15 Февраля 2016, 19:41:30 »
Скорее, товарищ ошибся в предоставлении диагностики. Скрипты (которые, кстати, почему-то не завёрнуты в код и спойлеры. Нас не уважают?) тут не к месту.
vkb1969, как сайт переносили?…
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн vkb1969

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: Нет доступа к таблицам базы данных MYSQL
« Ответ #3 : 16 Февраля 2016, 09:24:49 »
Сайт перенес скопировав исходники из Windows.  Саму базу экспортировал из MYSQL Openserver и импортировал их в MYSQL Ubuntu.
Из PHPMyAdmin запросы выполняются. С доступом к каталогу разобрался. Сам сайт загружается. Если убрать строку где идет обращение к таблице, то страница загружается.
Как перенести этот пост в другой раздел?

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Нет доступа к таблицам базы данных MYSQL
« Ответ #4 : 16 Февраля 2016, 10:19:37 »
Как перенести этот пост в другой раздел?
Разбудить модераторов кнопкой "Сообщить модератору"

Оффлайн unimix

  • Активист
  • *
  • Сообщений: 537
    • Просмотр профиля
Re: Нет доступа к таблицам базы данных MYSQL
« Ответ #5 : 16 Февраля 2016, 14:40:59 »
Что в логах? (/var/log/apache2/error.log)

Оффлайн vkb1969

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: Нет доступа к таблицам базы данных MYSQL
« Ответ #6 : 16 Февраля 2016, 15:40:43 »
[Tue Feb 16 15:27:29.286839 2016] [:error] [pid 1456] [client 127.0.0.1:58841] PHP Fatal error:  Call to undefined method mysqli_result::fetch_all() in /home/vostokov/public_html/carsdoc/CFileDoc.class.php on line 37, referer: http://carsdoc/loginDB.php

mysqli_result::fetch_all() - не определенный метод?!

Этот код работает под Openserver для Windows и MAMP Pro под MacOs. Какой функцией можно заменить mysqli_result::fetch_all()?
« Последнее редактирование: 16 Февраля 2016, 15:56:06 от vkb1969 »

Оффлайн unimix

  • Активист
  • *
  • Сообщений: 537
    • Просмотр профиля
Re: Нет доступа к таблицам базы данных MYSQL
« Ответ #7 : 16 Февраля 2016, 15:55:58 »
1. Что там у тебя на 37 строке?
2. Что там тебе выдаёт "$this->_db->query($sql)"? А то может и никакого объекта не возвращается (http://php.net/manual/ru/mysqli.query.php).

Смотри содержание "$result".
Смотри содержание "mysqli::$error".

---

http://php.net/manual/ru/mysqli-result.fetch-all.php
Доступно только с расширением mysqlnd.
sudo apt-get install php5-mysqlnd
или используй "mysqli_fetch_array()".
« Последнее редактирование: 16 Февраля 2016, 16:13:19 от unimix »

Оффлайн vkb1969

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: Нет доступа к таблицам базы данных MYSQL
« Ответ #8 : 16 Февраля 2016, 16:20:33 »
Добавил в 'SELECT id,fio FROM sotrdoc LIMIT 10' - страница загрузилась, но result пустой.

Пользователь решил продолжить мысль 16 Февраля 2016, 17:14:44:
sudo apt-get install php5-mysqlnd  -  это помогло. Все заработало. Спасибо за подсказку!
« Последнее редактирование: 16 Февраля 2016, 17:14:44 от vkb1969 »

 

Страница сгенерирована за 0.066 секунд. Запросов: 25.