Portál AbcLinuxu, 10. října 2026 19:51


Dotaz: SQL dotaz nešlo provést

12.3.2010 17:25 halva-jr | skóre: 12
SQL dotaz nešlo provést
Přečteno: 945×
Odpovědět | Admin
Dobrý den,

přesunul jsem svoje stránky na vlastní server. Všechno je OK, problém je jen ten, že určitě dotazy nelze provést. Např. tento se provede bez problému
$link = mysql_connect ("localhost", "halvaorg", "xxx") or die ("Nepovedlo se připojit na databázový server");
$db = mysql_select_db("halvaorg", $link) or die ("Nepovedlo se otevřít databázi");
mysql_query("SET NAMES 'cp1250'") or die('Nepodařilo se nastavit jazyk'); 
$query = "SELECT * FROM fotogalerie ORDER BY id DESC";
$result = mysql_query($query, $link) or die("SQL dotaz nešlo provést");
tento už však nelze provést
$link = mysql_connect ("localhost", "halvaorg", "xxx") or die ("Nepovedlo se připojit na databázový server");
$db = mysql_select_db("halvaorg", $link) or die ("Nepovedlo se otevřít databázi");
mysql_query("SET NAMES 'cp1250'") or die('Nepodařilo se nastavit jazyk'); 
$query = "SELECT * FROM fotogalerie where id=$id";
$result = mysql_query($query, $link) or die("SQL dotaz nešlo provést");
Jakýkoliv dotaz kde něco vybírám pomocí adresy nelze provést. Na starém hostingu to fungovalo OK. Nevíte čím by to mohlo být? Mrknout na to můžete na adrese www.halva.org/tristudne/index.php - např. sekce fotogalerie.

Díky za rady

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

12.3.2010 17:35 tomk
Rozbalit Rozbalit vše Re: SQL dotaz nešlo provést
Odpovědět | | Sbalit | Link | Blokovat | Admin

Na tom webu toho moc videt neni. Podle kodu jsem si dokazal predstavit, ze se tam zobrazi "SQL dotaz neslo provest", coz se stalo a moc to nepomuze. Doporucuju podivat se do logu na serveru, nebo pouzit funkci mysql_error.

Predpokladam, ze promenna $id je neplnena nejakou rozumnou hodnotou.

Tomas
Řešení 1× (halva-jr (tazatel))
12.3.2010 17:38 Robbie | skóre: 21 | Praha
Rozbalit Rozbalit vše Re: SQL dotaz nešlo provést
Odpovědět | | Sbalit | Link | Blokovat | Admin
kdyz si nechate vypsat
$query = "SELECT * FROM fotogalerie where id=$id";
echo $query;
co to vypise. Bude tam neco jako id=1 nebo jen id= . Neni tu jasne odkud se bere promena $id. Pokud je to nejaka hodnota predava z odkazu(pravdepodobne), tak muze na to mit nastaveni na hostingu v php.ini hodnota register_globals = On/Off.

Zkuste pripadne to query prepsat:
$query = "SELECT * FROM fotogalerie where id=$GLOBALS[id]";
nebo
$query = "SELECT * FROM fotogalerie where id=$_POST[id]";
nebo
$query = "SELECT * FROM fotogalerie where id=$_GET[id]";
Pripadne juknete pak i semka: http://navody.c4.cz/register_globals

12.3.2010 17:48 Robbie | skóre: 21 | Praha
Rozbalit Rozbalit vše Re: SQL dotaz nešlo provést
A jeste doplnim, ze pokud to bude tim, tak rychly zpusob zprovozneni kodu je doplnit, nekde na zacatek index.php:
extract($_REQUEST);
ale jinak je lepsi prepsat kod a z vyuzitim $_POST, $_GET, $_GLOBALS, apod.
12.3.2010 17:56 halva-jr | skóre: 12
Rozbalit Rozbalit vše Re: SQL dotaz nešlo provést
GET pomohlo. Změním to všude.

Díky moc.
Heron avatar 12.3.2010 18:00 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: SQL dotaz nešlo provést
Nastudujte si pojem SQL Injection.
12.3.2010 18:01 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: SQL dotaz nešlo provést
No a hned jako další krok bych doporučil odnaučit se cpát hodnoty parametrů do SQL dotazu. (Hint: SQL injection).
12.3.2010 18:08 halva-jr | skóre: 12
Rozbalit Rozbalit vše Re: SQL dotaz nešlo provést
Přiznám se, že tento problém znám, ale nějak jsem tomu zatím nevěnoval pozornost. Budu se nad tím muset zamyslet. Děkuji za doporučení.

Založit nové vlákno • Nahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.