Portál AbcLinuxu, 23. července 2025 06:31


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: 463×
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: 72 | 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áknoNahoru

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

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