NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: MySQL -> Fulltext a nebo hledání řetězce

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
katrincsak
Člen
Avatar
katrincsak:29.2.2016 4:24

Zdravím,

je zde nějaký borec, co mi vysvětlí některé chování při fulltextu, případně při selectu celého řetězce? Mám zde pár věcí, které mi nedávají logiku a nechápu proč...

FullText
-> Testovací DB
http://pastebin.com/j52LAqwZ

-> Příkaz

select * from navrhy where match (jmeno) against (?);

Je možné mi vysvětlit, proč to slovo "AntReX" nevyhledá a slovo "alfa" ano? Stačí si dané slovo dosadit místo otazníku.

Klasický SELECT

Jak je možný, že v tomto případě lze selectnout řetězec, ale je to proti bezpečnostnímu postupu.

try{
        $datasql = Db::dotazJeden("select * from mp3 where jmeno='".$_POST['jmeno']."'",
        array());
} catch (PDOException $e) {
        exit;
}

Jak je možný, že v tomto případě NELZE selectnout řetězec..Což splňuje bezpečnostní postup.

try{
        $datasql = Db::dotazJeden("select * from navrhy where jmeno='?'",
        array($_POST['jmeno']));
} catch (PDOException $e) {
        exit;
}

Už z toho třískám do stolu, protože to nechápu :(

Editováno 29.2.2016 4:26
 
Odpovědět
29.2.2016 4:24
Avatar
Tonda Kozák
Člen
Avatar
Tonda Kozák:29.2.2016 9:33

Druhý problém je jasný, okolo otazníku se nedělají uvozovky (apostrofy) - teď vyhledáváš řetězec, kterým je otazník.

První problém může být způsoben tímto:

4.Dále, existuje pravidlo "padesátiprocen­tního prahu". To stanoví, že slova, která se vyskytují ve více než 50% prohledávaných záznamů jsou z fulltextování vyloučena. To lze "vypnout" přepsáním zdrojového kódu MySQL a rekompilací nebo obejít pomocí alternativní metody práce s fulltextem

Zdroj: http://www.linuxsoft.cz/article.php?…

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
29.2.2016 9:33
Avatar
katrincsak
Člen
Avatar
Odpovídá na Tonda Kozák
katrincsak:29.2.2016 10:21

Zachránil jsi mi stůl, šedivý vlasy a omlácenou ruku... :D ..

Fakt moc děkuji, již mám vyřešený i problém těch 50% :)

Editováno 29.2.2016 10:21
 
Nahoru Odpovědět
29.2.2016 10:21
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.