Avatar
Dominik Gavrecký:

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):

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í
+1 bodů
Řešení problému
 
Nahoru Odpovědět  +1 25.4.2015 22:35
Avatar
Dominik Gavrecký:

Ď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):

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
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.