Avatar
katrincsak
Člen
Avatar
katrincsak:

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. února 4:26
 
Odpovědět 29. února 4:24
Avatar
Tonda Kozák
Člen
Avatar
Tonda Kozák:

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í
+1 bodů
Řešení problému
 
Nahoru Odpovědět  +1 29. února 9:33
Avatar
katrincsak
Člen
Avatar
Odpovídá na Tonda Kozák
katrincsak:

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. února 10:21
 
Nahoru Odpovědět  +1 29. února 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.