Staň se programátorem díky kurzům PRO s podporou uplatnění a vlastním full-stack projektem. Více informací:
POSLEDNÍ ŠANCE do 29. 8. 2025: Pracuj až o 60 % rychleji díky akreditovanému kurzu Specialista na AI. Nyní již od 0 Kč. Zjisti více:
Funkce, kterou se snažíš použít je dostupná pouze pro registrované uživatele. Buďto se přihlas nebo si zdarma vytvoř nový účet.

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