NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
S účinností od 26. 3. jsme aktualizovali Zásady zpracování osobních údajů – doplnili jsme informace o monitorování telefonických hovorů se zájemci o studium. Ostatní části zůstávají beze změn.

Diskuze: PDO Select

V předchozím kvízu, Online test znalostí SQL a databází, 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
Dominik Gavrecký:25.4.2015 22:30

Zdravím komunitu,

Chcel by som sa vás opýtať. Poslednou dobov ma mysqli začalo celkom obmedzovať tak som sa rozhodol prejsť na PDO. Je to zo začiatku ako španielská dedina a preto sa na vás obraciam s mojim problém.

<?php

$host = "localhost";
$user = "root";
$password = "";

$connect = new PDO('mysql:host=localhost;dbname=codepaste', $user, $password);
$connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$query = $connect->prepare("SELECT * FROM codepaste");
$row = $query->fetchAll();

print_r($row);

?>

Problém je že mi vráti prázdny Array. Prípadne mi pozrite connect rád sa priučím.

Ďakujem

Editováno 25.4.2015 22:32
Odpovědět
25.4.2015 22:30
Hlupák nie je ten kto niečo nevie, hlupákom sa stávaš v momente keď sa na to bojíš opýtať.
Avatar
Odpovídá na Dominik Gavrecký
Martin Konečný (pavelco1998):25.4.2015 22:35

Ahoj,

tvůj problém je ten, že metoda prepare() pouze dotaz "připraví", ale neprovede.

Řešení jsou dvě:

  1. místo prepare() použít query()
  2. po řádku $connect->prepare() udělej ještě:
$query->execute();
$row = $query->fetchAll();
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
+1
25.4.2015 22:35
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Dominik Gavrecký:25.4.2015 22:37

Ďakujem :) A ktoré z tých dvoch možností je lepšie používať ? Prípadne + -

Nahoru Odpovědět
25.4.2015 22:37
Hlupák nie je ten kto niečo nevie, hlupákom sa stávaš v momente keď sa na to bojíš opýtať.
Avatar
Odpovídá na Dominik Gavrecký
Martin Konečný (pavelco1998):25.4.2015 23:08

query() je lepší použít v případě, kdy nedosazuješ do dotazu nějaké hodnoty poslané uživatelem, což je tvůj případ.
Kdybys chtěl vyhledat záznamy dle podmínky, je lepší použít prepare() a execute() (tzv. prepared statements), protože to automaticky ošetří proti SQL injection, viz http://www.itnetwork.cz/…ion-a-obrana.

Nahoru Odpovědět
+1
25.4.2015 23:08
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
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 4 zpráv z 4.