Как достать из базы данных имя документа 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 определены в начале скрипта.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д