NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Mezinárodní den IT společnosti je tady! Pouze nyní můžeš získat 90 % extra kreditů při nákupu od 1199 kreditů s promo kódem AJTACI90. Tak neváhej!

Diskuze: MySQL PDO - Univerzální dotaz WHERE

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

Jak se ti líbí článek?
Před uložením hodnocení, popiš prosím autorovi, co je špatněZnaků 0 z 50-500
Jak se ti kurz líbí?
Tvé hodnocení kurzuZnaků 0 z 50-500
Aktivity
Avatar
katrincsak
Člen
Avatar
katrincsak:27.6.2016 11:01

Zdravím,

potřeboval bych prosím poradit.

Rád bych provedl několik úkonů v jednom kodu a sypal do toho jen jiné hodnoty dotazů.

$sloupce a $tabulky jsou v pohodě, ale jde o zachování bezpečnosti a v případě vypisování hodnot do WHERE, nesmím mít hodnoty, ale otázníky. Což by problém nebyl, ale problém je jak pak univerzálně dostat hodnotu do array() ?

Každopádně dotaz bude ovlivňovat jen script a nikoliv samotný uživatel

public function spocitejPocetZaznamu($sloupce,$tabulka, $where){
        try{
                $data = Db::dotazPocet("SELECT ".$sloupce." FROM ".$tabulka." ".$where."",
                array());
                return $data;
        } catch (PDOException $e) {
                echo "Chyba ve spočítání stránek";
                        exit;
        }
}

Děkuji za vaše nápady.

 
Odpovědět
27.6.2016 11:01
Avatar
katrincsak
Člen
Avatar
katrincsak:27.6.2016 11:15

Kdo již četl moje vlákna, tak ví, že si umím odpovídat sám.
Již vyřešeno.

Řešení:

do proměnné WHERE normálně hodím dotaz z otazníky a na místo "array()" již vložit vyplněné pole. např.

// Ukázka inicializace
$sloupce = "*";
$tabulka = "clanky";
$WHERE = "status=? AND priorita=?";
 $pole = array(1,4); //1 = status, 4 = priorita

//Ukázka výsledného zápisu.
public function spocitejPocetZaznamu($sloupce,$tabulka, $where){
        try{
                $data = Db::dotazPocet("SELECT ".$sloupce." FROM ".$tabulka." ".$where."",
                $pole);
                return $data;
        } catch (PDOException $e) {
                echo "Chyba ve spočítání stránek";
                        exit;
        }
}
Editováno 27.6.2016 11:16
Akceptované řešení
+5 Zkušeností
Řešení problému
 
Nahoru Odpovědět
-1
27.6.2016 11:15
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 2 zpráv z 2.