Autor Zpráva
et9
Profil
Dobrý den, Mám soubor zkouska.sql ve kterém je
 CREATE TABLE `zkouska` (
`zkouska_id` mediumint( 8 ) unsigned NOT NULL AUTO_INCREMENT ,
);


A já potřebuji vykonat tento dotaz co je v souboru pomocí nějakého php scriptu nevíte někdo jak na to??
hary28
Profil
Jestli sem to pochopil, tak tento kód dej normálně do MySQL_Query();
Majkl578
Profil
mysql_query(file_get_contents('zkouska.sql'));

Bacha ale, tenhle SQL dotaz je špatně. ;)
et9
Profil
Tento dotaz mi vyhodil phpmyadmin nemůže být špatně.
Majkl578
Profil
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 3
Verze MySQL: 5.1.41-3
et9
Profil
Mám úplně stejnou verzi phpmyadmina a nic mi to nehlásí Ale ten dotaz fakt nemůže být špatně když mi tento dotaz vyhodil přímo phpmyadmin
Jan Tvrdík
Profil
et9:
Zkoušel jsi ten dotaz spustit? :)
_es
Profil
et9:
Tá čiarka na konci druhého riadku bude asi navyše.
keeehi
Profil
et9:
phpadmin má i možnost zobrazení dotazu v php, hladej a nejadeš (zadej sql dotaz, dej provést, a tam co se ti to zobrazí tak v pravém spodním roku je něco va smyslu zobrazit v php)
Alphard
Profil
Jde-li o zpracování sql dumpu, mysql_query() stejně nevezme více dotazů oddělených středníkem.
et9
Profil
A kdybych se nějak ten sql dotaz rozdělil po řádcích a postupně vykonal?
Alphard
Profil
Nemáte radiší k dispozici PHP: mysqli::multi_query - Manual?
Majkl578
Profil
et9:
Nebo lze použít MySQLI::multi_query()
keeehi
Profil
www.junext.net/mysql/ oddíl 2.6
et9
Profil
Bohužel mysqli nemám ale co sem se dívál na instalaci joomly tak tam při instalaci vykonávají sql dotazy ze souboru pořád hledám ten kód ale nemůžu ho najít
et9
Profil
keeehi:
www.junext.net/mysql/ oddíl 2.6

To je hezké ale já to potřebuji udělat přes php
Jan Tvrdík
Profil
Extrémně rychlé zpracování (i velkého) dumpu (via dibi):
$file = 'zkouska.sql';
$handle = @fopen($file, 'r'); // intentionally @
$count = 0;
$sql = '';
while (!feof($handle)) {
    $s = fgets($handle);
    $sql .= $s;
    if (substr(rtrim($s), -1) === ';') {
        mysql_query($sql);
        $sql = '';
        $count++;
    }
}
keeehi
Profil
et9:
zatím jsem tuto možnost nikdy nezkoušel, ale mělo by toto fungovat
<?php mysql_query("SOURCE /moje/prikazy/zal_knih.mysql;");?>
et9
Profil
Takže je to vyřešeno děkuji moc všem za pomoc a účast v této diskuzi použil sem kod:
$file = 'zkouska.sql';
$handle = @fopen($file, 'r'); // intentionally @
$count = 0;
$sql = '';
while (!feof($handle)) {
    $s = fgets($handle);
    $sql .= $s;
    if (substr(rtrim($s), -1) === ';') {
        mysql_query($sql);
        $sql = '';
        $count++;
    }
}

Ještě jednou děkuji moc mi to pomohlo

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: