Zadejte hledaný výraz...

Mysql select – Where s pomlčkou ?

Ahoj mám tento kód
$dotaz = "SELECT id FROM tabulka WHERE sloupec=".$model ;
Dotaz funguje dobře jen do té doby dokud v proměné model neni pomlčka. Když je model třeba "test-jedna" tak to hodí chybu.
Unknown column 'test' in 'where clause'
Nevíte co s tím? V databázi je to s pomlčkou.
Možná uvozovky?
Díky za pomoc
rep+
16. 9. 2010 18:21:07
https://webtrh.cz/diskuse/mysql-select-where-s-pomlckou#reply558470
Martin
verified
rating uzivatele
(36 hodnocení)
16. 9. 2010 18:28:05
Ano, uvozovky:
$dotaz = "SELECT id FROM tabulka WHERE sloupec='".$model."'";
16. 9. 2010 18:28:05
https://webtrh.cz/diskuse/mysql-select-where-s-pomlckou#reply558469
Kamil Tomšík
verified
rating uzivatele
(3 hodnocení)
16. 9. 2010 18:31:11
a v nejlepsim pripade prepared statementy: http://www.php.net/manual/en/pdo.prepare.php
16. 9. 2010 18:31:11
https://webtrh.cz/diskuse/mysql-select-where-s-pomlckou#reply558468
Ľuboš
verified
rating uzivatele
(4 hodnocení)
16. 9. 2010 18:34:30
ahoj
nechybaju ti tam nahodu apostrofy? ako pytam sa na ten string $model neviem aky ma obsah. ja by som namiesto stliupec = 'vyraz' pouzil skor stloupec like 'vyraz'. cize u teba konkretne
16. 9. 2010 18:34:30
https://webtrh.cz/diskuse/mysql-select-where-s-pomlckou#reply558467
Kamil Tomšík
verified
rating uzivatele
(3 hodnocení)
16. 9. 2010 18:44:56
Napsal franki3xe;570577
ahoj
nechybaju ti tam nahodu apostrofy? ako pytam sa na ten string $model neviem aky ma obsah. ja by som namiesto stliupec = 'vyraz' pouzil skor stloupec like 'vyraz'. cize u teba konkretne
aneb, proc je to spatne reseni: http://cs.wikipedia.org/wiki/SQL_injection
16. 9. 2010 18:44:56
https://webtrh.cz/diskuse/mysql-select-where-s-pomlckou#reply558466
Díky všem, vedouciho reseni je asi nejepsi, ale moc tomu zatim nerozumím. Zkouknu i ostatní. Díky všem!
16. 9. 2010 18:50:10
https://webtrh.cz/diskuse/mysql-select-where-s-pomlckou#reply558465
Kamil Tomšík
verified
rating uzivatele
(3 hodnocení)
16. 9. 2010 18:53:30
je to jednoduche - pomoci pdo se pripojis:
$pdo = new PDO ( "mysql:host=localhost;database=jmeno_databaze", "uzivatel", "heslo" );
a potom si pripravis prepared statement a spustis ho:
$st = $pdo -> prepare ( "SELECT id FROM tabulka WHERE sloupec = ?" );
$st -> execute ( array ( "nazev_sloupce" ) ); //tzn. $model
execute prijima pole parametru - tzn. kolik otazniku, tolik polozek v poli...
mohou byt i pojmenovane, ale ja to nepouzivam.
16. 9. 2010 18:53:30
https://webtrh.cz/diskuse/mysql-select-where-s-pomlckou#reply558464
Ty jo! Díky, čtu si teď o tom a zjištuji další výhody. Do teď jsem o tom nikdy neslyšel.
16. 9. 2010 19:15:40
https://webtrh.cz/diskuse/mysql-select-where-s-pomlckou#reply558463
Kamil Tomšík
verified
rating uzivatele
(3 hodnocení)
16. 9. 2010 19:23:11
muzes mi podekovat treba tak, ze to rozsiris mezi ostatni :-)
16. 9. 2010 19:23:11
https://webtrh.cz/diskuse/mysql-select-where-s-pomlckou#reply558462
node
verified
rating uzivatele
(5 hodnocení)
16. 9. 2010 19:49:13
Uz je to vyriesene len by som chcel poznamenat ze toto mi pride krajsie:
16. 9. 2010 19:49:13
https://webtrh.cz/diskuse/mysql-select-where-s-pomlckou#reply558461
Karel Řehák
verified
rating uzivatele
16. 9. 2010 20:41:19
Napsal Re4DeR;570564
Možná uvozovky?
Samozřejmě, že uvozovky. Když tě to napadlo jako varianta, proč jsi to nezkusil?
16. 9. 2010 20:41:19
https://webtrh.cz/diskuse/mysql-select-where-s-pomlckou#reply558460
Protože se v uvozovkách v php vůbec nemuzu vyznat. Zkousel jsem to, ale asi blbě
16. 9. 2010 21:01:55
https://webtrh.cz/diskuse/mysql-select-where-s-pomlckou#reply558459
Kamil Tomšík
verified
rating uzivatele
(3 hodnocení)
16. 9. 2010 22:45:59
Napsal node;570623
Uz je to vyriesene len by som chcel poznamenat ze toto mi pride krajsie:
a je ti jasne, ze kdyz bude $model obsahovat retezec ve tvaru: ' or ''=', tak to vrati komplet vsechny zaznamy nezavisle na sloupci "sloupec"? rika se tomu sql injection...
a diky tomu, ze jsou lide, kterym to prijde hezci, tak je na svete spousta zranitelnych webu, do kterych se sikovnej programator prihlasi jako admin doslova behem par minut. (at uz selectem a nebo updatem hesla)
16. 9. 2010 22:45:59
https://webtrh.cz/diskuse/mysql-select-where-s-pomlckou#reply558458
hm
verified
rating uzivatele
(20 hodnocení)
17. 9. 2010 02:26:12
mezi komunitou radoby vyvojaru v php by mela probehnout nejaka osveta co se sql injection tyka... a nejen sql injection, co si budem povidat, tak to neni zdaleka jedina hrozba... vzdycky kdyz nekde vidim neoc noveho co ma ocividne svuj system tak si jen tak zkusim zabezpeceni a prekvapuje me kolik % takovych projektu prilis zabezpeceni nepobralo, nejhoris je ze se to kolikrat tyka i vetsich projektu...
17. 9. 2010 02:26:12
https://webtrh.cz/diskuse/mysql-select-where-s-pomlckou#reply558457
No a díky tomu, že jsem se zeptal jsem se naučil něco nového - a třeba ne jen já.
17. 9. 2010 06:59:07
https://webtrh.cz/diskuse/mysql-select-where-s-pomlckou#reply558456
Pro odpověď se přihlašte.
Přihlásit