[ adminer-Bugs and Features-2839231 ] Nespustà se dlouhý INSERT pÅÃkaz
Database management in a single PHP file
Brought to you by:
jakubvrana
From: SourceForge.net <no...@so...> - 2009-11-06 11:01:41
|
Bugs and Features item #2839231, was opened at 2009-08-17 22:49 Message generated for change (Settings changed) made by jakubvrana You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=1127745&aid=2839231&group_id=264133 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Closed >Resolution: Fixed Priority: 5 Private: No Submitted By: Nobody/Anonymous (nobody) Assigned to: Jakub Vrána (jakubvrana) Summary: Nespustí se dlouhý INSERT příkaz Initial Comment: Pokud do 'SQL přikaz' zadám dlouhý INSERT příkaz (např. data z exportu z lokální databáze - cca 20kB, většina typu TEXT), nespustí se. Nespustí se ani při odeslání přes soubor. Pokud se ho pokusím spustit s ostatními příkazy, spustí se všechny příkazy před ním, ale za ním nic (včetně onoho INSERT), nenapíše se ani žádná chyba, prostě jakoby víc příkazů neexistovalo. Pokud se pokusím odeslat samotný příkaz INSERT, dostanu okamžitě chybu prohlížeče "Připojení bylo ukončeno vzdáleným serverem". ---------------------------------------------------------------------- Comment By: Jakub Vrána (jakubvrana) Date: 2009-08-21 14:45 Message: Díky za trpělivost. Vzdal jsem to a celé jsem to předělal. Díky tomu jsem navíc objevil chybu, ke které docházelo při neuzavřeném /*. ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2009-08-21 12:25 Message: Je mi to líto, ale stále vám nemůžu dát pokoj. Je pravda, že mou uvedený prikaz2.sql už funguje. Ale stále nemůžu rozchodit i úplně triviální příkazy, např: http://leteckaposta.cz/107435172 (obsahuje jen šestkrát sekvenci \r\n, jinak znaky x a mezeru, prostě běžná data typu TEXT) ---------------------------------------------------------------------- Comment By: Jakub Vrána (jakubvrana) Date: 2009-08-20 16:43 Message: Díky za důslednost. Doufám, že se to podařilo vyřešit pomocí ungreedy RE, ale na pravou příčinu problému jsem po pravdě řečeno nepřišel. ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2009-08-20 01:38 Message: Je dost pravděpodobné, že to bude souviset se zpětnáým lomítkem, možná bude i chyba v mysqli. Ale i když jsem stáhl poslední verzi z SVN, moc to nepomohlo. Daný příklad prikaz.sql sice funguje, ale stačí INSERT o jedno \a prodloužit a zase mi to vrací chyby. prikaz2.sql: http://leteckaposta.cz/125666245 ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2009-08-19 20:51 Message: Já bych řekl, že může souviset nejenom s velikostí, ale i použitím zpětného lomítka v příkazu. V mém případě (localhost, EasyPHP 3.1) chybu neoznámí Adminer, ale Apache - a sice "Spojení přerušeno". ---------------------------------------------------------------------- Comment By: Jakub Vrána (jakubvrana) Date: 2009-08-19 19:16 Message: Díky za funkční ukázku, chybu jsem opravil v SVN. ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2009-08-19 17:18 Message: Špatně se chová např. tento sql soubor: http://leteckaposta.cz/572902041 Pokud příkazy spustím pomocí nahrání souboru, provedou se příkazy do prvního INSERTU včetně, pokud příkazy do textového pole nakopíruju z notepadu, neprovede se ani ten první INSERT. ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2009-08-19 16:45 Message: Zjistil jsem, že nejde o délku příkazu, ale pokud se pokusím do sloupce datového typu TEXT vložit hodnotu, která je větší než 8kB přesně (8192 bytů) - např. více než 4096 znaků v UTF-8. ---------------------------------------------------------------------- Comment By: Jakub Vrána (jakubvrana) Date: 2009-08-19 12:30 Message: Zkuste prosím zjistit maximální délku příkazu, který se ještě provede. Třeba nás to někam navede. ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2009-08-19 01:24 Message: max_allowed_packet = 1M Ten stejný příkaz lze bez problému spustit v MySQL konzoli i v phpMyAdmin. V Admineru ale stále nic, ani na desátý pokus v úplně jiném prohlížeči. Ale zjistil jsem, že tento problém přetrvává pouze u mě na lokálním serveru, na vzdáleném se příkaz normálně spustí. Nemůže jít o nějaký problém s rozdílnou verzí MySQL nebo PHP? Na lokálním serveru mám MySQL 5.1.30, kdežto na vzdáleném 5.0.51a. Na lokálním také běží PHP 5.3, na vzdáleném 5.2.10. Jak jsem psal o tom, že se nespustí ostatní příkazy, dokonce se ani nevykreslí zbytek stránky. Jak Adminer dojde k tomu dlouhému příkazu, prostě ukončí spojení s prohlížečem a zbytek stránky už nepošle. ---------------------------------------------------------------------- Comment By: Jakub Vrána (jakubvrana) Date: 2009-08-18 00:18 Message: Nedaří se mi to reprodukovat. Zkontrolujte prosím velikost konfigurační direktivy max_allowed_packet a zkuste příkaz spustit také přímo z MySQL konzole. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=1127745&aid=2839231&group_id=264133 |