Как достать из базы данных имя документа 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);
    }
}

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

  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
Похожие ответы