Zdravíčko, přijde mi, že databáze na webzdarma je pekelně pomalá, tak jsem chtěla zkusit připojit se z PHP na jiný databázový server, ale zdá se že to nefunguje. Je na webzdarma povoleno připojovat se na externí databázové servery?
Díky.
V principu by to jít mělo. Otázkou však je, jestli ty externí databázové servery mají povoleno externí připojení.
Když tak koukám do tvých nechráněných skriptů, tak bys mohla využít některou z výkonnějších databází na WZ. Pokud trváš na SQL, zkus SQLite, ale podle toho co vidím, by lepší volbou bylo GDBM. Třeba funkce confGetProperties() je úplný úlet...
BTW: Includy nedávej do souborů s příponou .inc, ale s příponou .php.
Aj! Oni pouštějí inc do světa :-) Já používám inc, protože chci mít reklamu dole, a ono ji to pak vkládá do každého php souboru, který přes ftp nahraju :-( Každopádně díky za varování a za tipy :-)
Stačí si nastavit reklamu "nahoře", zadat tam jméno souboru, do kterého ji uložit a pak ten soubor přidávat jako patičku.
SQLite je obecně asi 4x rychlejší, GDBM asi 40x. Na WZ je to však ještě markantnější, protože databáze MySQL je totálně přetížená a často je i nedostupná.
Modul conf-core.inc by se s GDBM dal stáhnout na 30 řádek velmi svižného kódu.
Do světa se pouští všechno podle nastavení ;)
Mělo by stačit dát příponu .inc mezi "zpracováné" v nastavení .htaccess:
AddHandler server-parsed .inc
nebo
AddHandler application/x-httpd-php .inc
___
Snad si to pamatuju dobře.. případně vygooglit :)
Freeze: Jo, dík, htaccess mě napadlo, poradím si s tím, pamatuješ si to správně :-)
Kit: Databáze prozkoumám, GDBM neznám, tak uvidím :-) Akorát ta reklama - když se zavážu mít ji nahoře, tak ji přece pak podfukem nebudu dávat do patičky, ne? :-)
Podfuk to je, ale popravdě, když se bude reklama zobrazovat všude dole, tak vlastně k žádnému podfuku nedochází. Pravidla říkají buď jednou nahoře nebo všude dole. Už se však nemluví, že se musí dodržovat i dané nastavení ;)
Mám dotaz, zda lze přistupovat k databázi na serveru WZ.CZ z jiných serverů.
Děkuji za odpověď.
Přímo to nejde. Databázi WZ MySQL je možné používat pouze prostřednictvím PHP na WZ. Můžeš si však napsat vhodné aplikační rozhraní, které budeš ovládat svou aplikací, která bude umět HTTP.
Být však tebou, o přístup zvenku bych se ani nepokoušel. Ta databáze je tak líná, že je skoro nepoužitelná. Můžeš to však zkusit obráceně: Z PHP na WZ se připojovat k vlastní databázi, kterou máš doma nebo někde jinde.
Jasně, díky za odpověď. MySQL na WZ je zřejmě záměrně pomalé... na jiných webech jsou tyto databáze podstatně svižnější.
Mě se jednalo o převzetí tabulky registrovaných, tak aby se na dalších (rychlejších hostinzích) nemuseli znovu registrovat ......
No pořeším to asi jinak.... Díkec
Tak to se obvykle dělá exportem v phpMyAdmin.
nejde mi o to je jednoduše převést, to zvládnu, ale pokaždé kontrolovat jestli někdo nepřibyl a exportovat není pro mne šťastné řešení. Stal bych se otrokem databáze.... :-)
Nemáš nějaké zkušenosti s Bananem? Tam je asi taky problém, protože server má název localhost....... z venku to tam asi taky nepůjde.
A přenášet uživatelská data $_post/$_get se mi moc nechce....
Žádný rozumný správce databáze ji neotevře do světa.
S Banánem nemám žádné zkušenosti, slyšel jsem o něm jen špatné.
Exportovat z databáze část tabulky, která je novější, než zadaný časový údaj, je jednoduchý SQL dotaz, který se přes GET dá celkem snadno propasírovat a vygenerovat výstup jako XML nebo SQL. Ten pak jenom načteš do druhé aplikace.
Jednoduchá pomůcka: Metodou GET se data získávají, metodou POST odesílají.
Ale můžeš to udělat mnohem elegantněji tak, že když se někdo zaregistruje na WZ, můžeš v PHP automaticky jeho registraci přeposlat i na druhý server, který ho také ihned zaregistruje.
Některé placené hostingy externí přístup nabízí, ale není ve standardní výbavě povolen. Pokud takovou možnost chceš, tak si musíš připlatit.
U banánu: http://www.banan.cz/index/balicky-sluzeb#externi_pristup_k_db
Tvůj případ je klasická synchronizace. Takže musíš najít nějaký způsob, jak jednoduše zajistit přenesení nových dat. Jedna varianta je právě připojení přes MySQL. Pokud toto není přístupno, pak je potřeba najít jiný způsob. A tomhle směru je to buď protokol HTTP, FTP nebo WebDAV. Pokud mluvíme o určité automatizaci.
Princip je takový. Při založení nebo úpravě účtu se bokem uloží i záznam o změně. Při synchronizaci se převezme tento záznam a provede se na druhém serveru. Po úspěšném dokončení se tento záznam promaže, aby se příště neprováděl znovu. Jak tento záznam přeneseš, je pak na tobě.
Případně jak psal Kit, synchronizaci provést okamžitě po provedení změny. Pak se jen přenesou jednorázová data a žádné záznamy nejsou pak potřeba.
O tom jsem také uvažoval. Asi to bude nejjednodušší řešení (když to nejde přes přístup do tabulky). Otázka je, jestli i ostatní servery to budou umožňovat - zvenku uložit. Jinak do souboru a pak importovat..... vymazat a tak pořád dokola...
Díky za info...
Zvažoval jsem i variantu, kdy k nějakému datu tabulku naimportuji a pak si budu jen hlídat datum (popř. sloupec s údajem o přenesení) přidání nového registrovaného a jeho záznamy pak předávat POSTem ke zpracování na jiném serveru ......
Přes HTTP rozhraní jde přenést hromada různých druhů dat. Nesnaž se jít na úroveň SQL. GET a POST na tyto záležitosti stačí a můžeš přenos i vhodným způsobem zabezpečit.
Timestamp registrace je docela sympatický údaj. Už proto, že ho nemusíš vytvářet, když si ho databáze udělá sama.