Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

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.

 

Všechny články v sekci
Zdrojákoviště - Knihovny v PHP
Program pro vás napsal David Hynek
Avatar
Uživatelské hodnocení:
1 hlasů
já jsem redaktor?
Aktivity