Autor | Zpráva | ||
---|---|---|---|
Pavel Vodnář Profil * |
#1 · Zasláno: 12. 5. 2011, 14:31:02
Z jakeho duvodu nemusi fungovat:
echo mysql_error(); |
||
Joker Profil |
#2 · Zasláno: 12. 5. 2011, 14:36:27
Cože? Jak „nemusí fungovat“?
|
||
__construct Profil |
#3 · Zasláno: 12. 5. 2011, 14:46:23 · Upravil/a: __construct
Pavel Vodnář:
Úlohou tej funkcie je zobraziť chybovú hlášku predchodzej operácie. V PHP manuále si pozri popis RETURN - vracia chybovú hlášku, alebo prázdny reťazec. Keď nepoužiješ pripojenie MySQL a zavoláš „len tak“ funkciu mysql_error() tak vráti false .
|
||
Pavel Vodnář Profil * |
#4 · Zasláno: 12. 5. 2011, 14:56:55
když mám chybu v kodu nevypisuje mi to chybove hlašky a ani echo mysql_error(); mi nic nevypiše - jakto?
|
||
roberta Profil |
#5 · Zasláno: 12. 5. 2011, 15:04:31
nekonektuješ (mysql_connect) sa náhodou viackrát do mysql databázy?
|
||
jenikkozak Profil |
#6 · Zasláno: 12. 5. 2011, 15:10:42
Pavel Vodnář:
- Protože Excel nepochopil, že nejde o řetězec? Ještě mě napadá, že problém může být v tom, že mysql_error() nevrací chyby typu neuzavřený <div> a podobně. - Podívej se, co ta funkce vlastně dělá. - A nebo je vypnuté zobrazování chybových hlášek na serveru? Vlákno o zapnutí chybových hlášek existuje i tady na diskusi. |
||
Pavel Vodnář Profil * |
#7 · Zasláno: 13. 5. 2011, 13:00:28
roberta:
ano konektuji - jak se tedy připojit k DB jinde v kódu aby jsem nekonektoval (mysql_connect)? |
||
ShiraNai7 Profil |
#8 · Zasláno: 13. 5. 2011, 13:39:36 · Upravil/a: ShiraNai7
Pavel Vodnář:
„jak se tedy připojit k DB jinde v kódu aby jsem nekonektoval“ Připojit se do databáze bez připojení? Zajímavé. Budeš muset zavést nějakou správu jednotlivých připojení k databázi. Např takovýto jednoduchý databázový wrapper. (který navíc automaticky detekuje mysql_error) Takže namísto současného HLAVNÍHO mysql_connect(), uděláš toto: // vložení db wrapperu require 'db_wrapper.php'; // adresu změnit podle skutečné cesty k souboru s wrapperem! // vytvoření hlavního připojení db::$m = new db('server', 'uzivatel', 'heslo', 'databaze'); Dále v kódu namísto současných mysql_query() a mysql_fetch_assoc() a tak dále, budeš používat HLAVNÍ připojení takto: $dotaz = db::$m->query('SELECT * FROM tabulka WHERE 1'); // ukázkový SQL dotaz while($radek = db::$m->row($dotaz)) { // nějaké operace s $radek } A nakonec jak použít na chvíli úplně jiné připojení, které VŮBEC NEOVLIVNÍ naše hlavní připojení? Snadno: // vytvoříme nové připojení, které je úplně izolováno od hlavního $jine_pripojeni = new db('nejakyserver', 'uzivatel', 'heslo', 'databaze'); // a můžeme vesele provádět dotazy na tomto připojení $dotaz = $jine_pripojeni->query('SELECT neco FROM tabulka WHERE podminka'); while($radek = $jine_pripojeni->row($dotaz)) { // nějaké operace s $radek } Poznámky: ~ třída je psaná pro PHP 5 a novější ~ je jen ukázková a úplně jednoduchá, pro větší projekty se hodí sofistikovanější wrapper (který mám ale pro tento případ by to byl overkill) ~ jsem si vědom toho, že by tento problém s přepisováním implicitního připojení šel vyřešit znovupřipojením po dokončení práce s novým, nicméně to nepovažuji za dobrou praktiku |
||
Časová prodleva: 14 let
|
0