C# týden November Black Friday
Black Friday je tu! Využij jedinečnou příležitost a získej až 80 % znalostí navíc zdarma! Více zde
Pouze tento týden sleva až 80 % na e-learning týkající se C#

PHP importer SQL souboru

Unicorn College Tento obsah je dostupný zdarma v rámci projektu IT lidem.
Vydávání, hosting a aktualizace umožňují jeho sponzoři.
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!

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)

 

 

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í!