Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /*
- Создайте класс для работы с csv в классе должны быть функции :
- разбор данных из csv в массив
- превращение данных из массива в csv
- запись данных в базу данных
- выгрузка данных из бд в csv файл
- */
- class File {
- public $fopen;
- public $fileName;
- public $host = 'localhost';
- public $dbname = 'abdulov';
- public $db_user = 'root';
- public $db_password = '';
- // конструктор для открытия доступа к файлу
- function __construct($fileName, $mode) {
- return $this->fopen = fopen($fileName, $mode);
- }
- // метод для получения массива из CSV
- function fromCSVtoArr($delim) {
- $array = [];
- while ($data = fgetcsv($this->fopen, filesize($this->fileName), $delim)) {
- array_push($array, $data);
- }
- var_dump($array);
- fclose($this->fopen);
- }
- // метод для передачи массива в файл
- function arrayToCSV($array, $delim) {
- $fp = fopen('file.csv', 'w');
- foreach ($array as $fields) {
- fputcsv($fp, $fields, $delim);
- }
- fclose($fp);
- }
- // метод для подключения к базе
- function connection() {
- $dsn = "mysql:host=".$this->host.";dbname=".$this->dbname.";charset=utf8";
- $opt = array (
- PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
- PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
- );
- return $pdo = new PDO($dsn, $this->db_user, $this->db_password, $opt);
- }
- /*просто рабочий метод для добавления в базу данных для меня
- function insertToDB() {
- $stmt = $this->connection()->prepare('INSERT INTO users SET login = ?, password = ?, surname = ?, name = ?, email = ?, address = ?');
- $stmt->execute(array('alex', 'Alex', 'Alex', 'Alexov', 'alex@gmail.com', 'Alex'));
- }*/
- // метод для переноса массива в базу, переношу просто массив, а не файл CSV, можно и для файла сделать
- function insertToDB($array) {
- $stmt = $this->connection()->prepare('INSERT INTO users1 SET login = ?, name = ?, surname = ?, email = ?');
- for ($i=0; $i < count($array); $i++) {
- $stmt->execute($array[$i]);
- }
- }
- // метод для выборки данных из базы в файл. в качестве аргумента передаем название таблицы
- function selectFromDBToFile() {
- $fp = fopen('dataDB.csv', 'w+');
- $stmt = $this->connection()->query('SELECT * FROM users1');
- $data = $stmt->fetchAll();
- foreach ($data as $value) {
- fputcsv($fp, $value, ';');
- }
- fclose($fp);
- }
- }
- ?>
Add Comment
Please, Sign In to add comment