Как достать из базы данных имя документа txt и текст? - MySQL

Узнай цену своей работы

Формулировка задачи:

У меня есть база данных

MySQL

, там есть два столбика третий

title

(содержащий название

документа

.txt

) и четвертый

note

(содержащий текст

документа

.txt

). Как мне достать их все в документы

.txt

так, чтобы третий столбик задавал бы имя

документа

, четвертый задавал бы содержание

документа

.txt

? И так к каждой строчке?

Решение задачи: «Как достать из базы данных имя документа txt и текст?»

textual
Листинг программы
  1. <?php
  2. $path = ''; // директория, куда сохранять
  3. $dbname = 'database'; // путь до базы
  4. $table = 'notes'; // таблица с записями
  5. $db = new \PDO('sqlite:'.$dbname);
  6. SaveNotes($db, $path, $table);
  7.  
  8. class TextFile
  9. {
  10.     private $title = '';
  11.     private $note = '';
  12.  
  13.     public function __construct($title, $note)
  14.     {
  15.         $this->title = $title;
  16.         $this->note = $note;
  17.     }
  18.  
  19.     public function fileName($dir)
  20.     {
  21.         return $dir . $this->title . '.txt';
  22.     }
  23.  
  24.     public function saveTo($dir = '')
  25.     {
  26.         file_put_contents($this->fileName($dir), $this->note);
  27.     }
  28. }
  29.  
  30. function SaveNotes(\PDO $db, $dir = '', $table = 'notes')
  31. {
  32.     /** @var \PDOStatement $notes */
  33.     $notes = $db->query('SELECT `title`, `note` FROM '.$table);
  34.     /** @var \TextFile $note */
  35.     while ($note = $notes->fetchObject(TextFile::class)) {
  36.         $note->saveTo($dir);
  37.     }
  38. }

Объяснение кода листинга программы

  1. Объявлены переменные:
    • $path - пустая строка для хранения пути к директории, куда будут сохраняться файлы.
    • $dbname - строка с путем до базы данных.
    • $table - строка с именем таблицы в базе данных, где хранятся заметки.
    • $db - объект класса \PDO, который представляет подключение к базе данных SQLite и выполняет SQL-запросы.
  2. Выполняется SQL-запрос SELECT title, note FROM notes с помощью метода query() объекта $db. Полученный результат сохраняется в переменной $notes.
  3. В цикле while происходит следующее:
    • Создается объект класса TextFile с помощью оператора new.
    • Полученные из базы данных значения title и note передаются в качестве аргументов в конструктор класса TextFile.
    • Метод saveTo() вызывается для каждого объекта TextFile, передавая в качестве аргумента путь к директории, где нужно сохранить файл.
  4. Метод saveTo() объекта TextFile записывает содержимое заметки в файл с помощью функции file_put_contents(). Путь к файлу формируется с помощью метода fileName().
  5. Значения переменных $path, $dbname, $table определены в начале скрипта.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.143 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы