filtr where "nereaguje"
6 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
čím by to mohlo být, že podle `id` je záznam správně vyhledán a výběr podle `nick` "nefunguje"? (pozn: ani to nehlásí žádnou chybu, neměním nic jiného než instrukci ve where) podrobnější vysvětlení: Vybírám záznamy z db.tabulky: ......... id int NOT NULL auto_increment, nick varchar(20) NOT NULL, password char(40) NOT NULL, PRIMARY KEY (id) ......... /porovnání: latin2_czech_cs/ ......... $sql_instrukce="SELECT * FROM $tb WHERE `id` = 2 "; výsledek: funguje to ... while vybere záznam s id=2 pokud chci vybírat podle nicku předaného ze vstupního formuláře (zkoušel jsem i přímo zadaným existujícím nickem a nic, takže ve formuláři chyba není ) /$xnick = $_POST['f_nick'];/ $sql_instrukce="SELECT * FROM $tb WHERE `nick` = $xnick "; výsledek: nefunguje to ... while nevybere vůbec nic
-
A zkusil si zobrazit, jak vypadá výsledný SQL dotaz, než se jej pokusíš provést? print_f("SELECT * FROM $tb WHERE `nick` = $xnick "); Snadno zjistíš, proč je ten dotaz špatně -- proč nebude fungovat. Pro případ, že bys na to sám nepřišel, tak to prozradím: chybí ti uvozovky okolo řetezce, správně "WHERE `nick` = '$xnick' " (apostrofy okolo hodnoty). Pár poznámek: 1) Dokud testuješ svoje skripty lokálně, zobrazuj si chyby databázových dotazů -- snadno potom zjistíš, jestli máš databázový dotaz špatně syntakticky (tzn. například chybějící uvozovky).. 2) Co se stane, pokud bych do formuláře vyplnil následující text? ' OR 1 (Záměrně začíná apostrofem, a doplňuje další podmínku do tvého dotazu..). http://en.wikipedia.org/wiki/SQL_injection
-
no až je mi trapně ... samozřejmě že chyba byla v uvozovkách .. dříve jsem to totiž praktikoval jen na číselnejch kódech a tam uvozovky nemusí být.. šmudlám to rovnou tady růčo na serveru ... ale díky moc, s tím printovým testováním to může ušetřit taky spoustu času .
-
už asi vím ... na scestí mně totiž přivedl mimojiné i funkční zápis FROM $tb WHERE kde $tb je taky bez uvozovek a v pohodě si funguje :-)
-
už asi vím ... na scestí mně totiž přivedl mimojiné i funkční zápis FROM $tb WHERE kde $tb je taky bez uvozovek a v pohodě si funguje :-)
-
už asi vím ... na scestí mně totiž přivedl mimojiné i funkční zápis FROM $tb WHERE kde $tb je taky bez uvozovek a v pohodě si funguje :-)