Как достать из базы данных имя документа txt и текст? - MySQL
Формулировка задачи:
У меня есть база данных
MySQL
, там есть два столбика третийtitle
(содержащий названиедокумента
.txt
) и четвертыйnote
(содержащий текстдокумента
.txt
). Как мне достать их все в документы.txt
так, чтобы третий столбик задавал бы имядокумента
, четвертый задавал бы содержаниедокумента
.txt
? И так к каждой строчке?Решение задачи: «Как достать из базы данных имя документа txt и текст?»
textual
Листинг программы
- <?php
- $path = ''; // директория, куда сохранять
- $dbname = 'database'; // путь до базы
- $table = 'notes'; // таблица с записями
- $db = new \PDO('sqlite:'.$dbname);
- SaveNotes($db, $path, $table);
- class TextFile
- {
- private $title = '';
- private $note = '';
- public function __construct($title, $note)
- {
- $this->title = $title;
- $this->note = $note;
- }
- public function fileName($dir)
- {
- return $dir . $this->title . '.txt';
- }
- public function saveTo($dir = '')
- {
- file_put_contents($this->fileName($dir), $this->note);
- }
- }
- function SaveNotes(\PDO $db, $dir = '', $table = 'notes')
- {
- /** @var \PDOStatement $notes */
- $notes = $db->query('SELECT `title`, `note` FROM '.$table);
- /** @var \TextFile $note */
- while ($note = $notes->fetchObject(TextFile::class)) {
- $note->saveTo($dir);
- }
- }
Объяснение кода листинга программы
- Объявлены переменные:
- $path - пустая строка для хранения пути к директории, куда будут сохраняться файлы.
- $dbname - строка с путем до базы данных.
- $table - строка с именем таблицы в базе данных, где хранятся заметки.
- $db - объект класса \PDO, который представляет подключение к базе данных SQLite и выполняет SQL-запросы.
- Выполняется SQL-запрос SELECT
title
,note
FROM notes с помощью метода query() объекта $db. Полученный результат сохраняется в переменной $notes. - В цикле while происходит следующее:
- Создается объект класса TextFile с помощью оператора new.
- Полученные из базы данных значения
title
иnote
передаются в качестве аргументов в конструктор класса TextFile. - Метод saveTo() вызывается для каждого объекта TextFile, передавая в качестве аргумента путь к директории, где нужно сохранить файл.
- Метод saveTo() объекта TextFile записывает содержимое заметки в файл с помощью функции file_put_contents(). Путь к файлу формируется с помощью метода fileName().
- Значения переменных $path, $dbname, $table определены в начале скрипта.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д