PHP importer SQL souboru

PHP Ostatní PHP importer SQL souboru

Dnes jsem na diskusi zaznamenal dotaz po skriptu na vkládání dat do databáze, tuhle jsem se s tím také pral a tak jsem dnes vytvořil tento skript. Je nastaven na soubor o velikosti 10MB. Jde o mou prvotinu v OOP, tak se omlouvám, jestli tam budou nějaké neobjektovosti :-)

Program je v PHP, zkoušen na verzi cca PHP 5.3 a je funkční.

<?php
session_start();
header('Content-type: text/html; charset=utf-8');

class Db_importer
{
        private $report;
        private $mysqli;

        function __construct($sql_database, $sql_server, $sql_uzivatel, $sql_heslo) {
                $this->mysqli = new mysqli($sql_server, $sql_uzivatel, $sql_heslo, $sql_database);
                $this->mysqli->query("SET GLOBAL max_allowed_packet=10485760");
        }

        function prijata_data()
        {
                $sql = file_get_contents($_FILES['soubor']['tmp_name']);

                if ($this->mysqli->connect_errno) {
                        $this->report = "Chyba při připojení do databáze: <br />".$this->mysqli->connect_error;
                }

                if (!$this->mysqli->multi_query($sql)) {
                        $this->report = "Chyba při ukládání do databáze:<br />".$this->mysqli->error;
                }
                do {
                        if ($res = $this->mysqli->store_result()) {
                                var_dump($res->fetch_all(MYSQLI_ASSOC));
                                $res->free();
                        }
                } while ($this->mysqli->more_results() && $this->mysqli->next_result());
                if($this->report == "")
                        $this->report = "Data byla do databáze úspěšně nahrána. Celkem bylo uloženo ".(number_format((($_FILES['soubor']['size'])/1024), 2, ',', ' '))."kB dat.";
                return $this->report;
        }

        function formular()
        {
                if(isset($_POST["form_ok"])) {
                        $this->prijata_data();
                        return $this->report;
                }
                else
                {
                        return "<form method='post' enctype='multipart/form-data'>
                                <span>Soubor s databází max. 10MB </span><input type='file' name='soubor' />
                                <input type='submit' name='form_ok' value='Vložit' />
                                </form>";
                }
        }

        function __destructor() {
                $this->mysqli->close($link);
        }

}

$db_imp = new Db_importer("nazev_databaze","serve","uzivatel","heslo");
echo $db_imp->formular();
?>

Galerie

Program byl vytvořen v roce 2013.

 

  Aktivity (1)

Program pro vás napsal David Hynek
Avatar
já jsem redaktor?

Jak se ti líbí článek?
Celkem (1 hlasů) :
4444 4


 


Miniatura
Všechny články v sekci
Ostatní tutoriály v PHP
Miniatura
Následující článek
Šablonovací systém PHP_JUI - Úvod

 

 

Komentáře

Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zatím nikdo nevložil komentář - buď první!