Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][SQL] PDO - kilka pytań
desavil
post
Post #1





Grupa: Zarejestrowani
Postów: 339
Pomógł: 3
Dołączył: 15.10.2008
Skąd: Internet

Ostrzeżenie: (0%)
-----


Witajcie,

Postanowiłem przejść z mysql_query na PDO. Jestem w tym temacie jak nowy.
We większości poradników widzę podczas rozpoczęcia połączenia funkcję try{} oraz na końcu catch(){}
Czy jest to wymagane, czemu to służy?

W pliku z funkcjami mam połączenie z bazą po przez PDO:
  1. function con(){
  2. try{ $pdo = new PDO('mysql:host=localhost;dbname=xxx', 'xxx', 'xxx', array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")); }
  3. catch(PDOException $e){ echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage();
  4. }


Lecz po wykonaniu:
  1. $stmt = $pdo -> query('SELECT * FROM xxx WHERE xxx');
  2. foreach($stmt as $row){
  3. echo '<li>'.$row['nazwa'].': '.$row['opis'].'</li>';
  4. }

Dostaję błędy, że obiekt nie jest w klasie czy coś takiego, po przez brakujące try.
W jaki sposób dodać te try do zapytań?
A może po prostu w funkcji łączenia usunąć try i nie będzie problemu i nie będzie ono wymagane do zapytań?


Mam jeszcze jedno pytanie.
Jakich typów zapytać używać, co jest bezpieczniejsze, szybsze.
Typu:
  1. SELECT * FROM xx WHERE yy=zz

Czy:
  1. SELECT id,typ FROM xx WHERE yy=zz


Tak samo z dodawaniem rekordów używać:
  1. INSERT INTO produkty SET `nazwa`='nazwa', `opis`='opis'

Czy:
  1. prepare('INSERT INTO `produkty` (`nazwa`, `opis`) VALUES( :nazwa, :opis,)');


Cały czas w mysql_query używałem tych pierwszych, czy robiłem duży błąd jeżeli chodzi o bezpieczeństwo?

Pozdrawiam, i dziękuję za wszystkie odpowiedzi.


--------------------
"Nie ma głupich pytań, są tylko głupie odpowiedzi."
Pomogłem?? Kliknij "Pomógł" :) Dzięki!
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 18:08