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:
function con(){ try{ $pdo = new PDO('mysql:host=localhost;dbname=xxx', 'xxx', 'xxx', array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")); } }
Lecz po wykonaniu:
$stmt = $pdo -> query('SELECT * FROM xxx WHERE xxx'); foreach($stmt as $row){ }
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:
SELECT * FROM xx WHERE yy=zz
Czy:
SELECT id,typ FROM xx WHERE yy=zz
Tak samo z dodawaniem rekordów używać:
INSERT INTO produkty SET `nazwa`='nazwa', `opis`='opis'
Czy:
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.