Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP/PDO] zapytania 'zwykłe' vs. te z użyciem bindParam, Wątpliwości podczas nauki ;)
e-ax
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 27.05.2009

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


Witam.

Poznaję właśnie PHP i zastanawia mnie jedna rzecz. Dlaczego tak często używana jest metoda wykonywania zapytań w PDO z użyciem bindParam?
Argumentem przemawiającym za tą metodą jest przejrzystość kodu jaki otrzymujemy, jednak w zamian liczba znaków, które trzeba zapisać rośnie dość znacznie [ szczególnie przy dużej liczbie zmiennych w zapytaniu ].

Dlaczego więc stosować taki twór:

  1. <?php
  2. $pdo->prepare( 'INSERT INTO sadf VALUES ( :val1, :val2, :val3 ) ' );
  3.    $sth->bindParam(':val1', $qwer, PDO::PARAM_STR);
  4.    $sth->bindParam(':val2', $asdf, PDO::PARAM_STR);
  5.    $sth->bindParam(':val3', $wer, PDO::PARAM_STR);
  6.    $sth->execute();
  7. ?>


zamiast krótszego, acz o wiele mniej przejrzystego:
  1. <?php
  2. $pdo->exec( 'INSERT INTO sadf VALUES ( ''.$val1.'' , ''.$val2.'' , ''.$val3.'' )');
  3. ?>


W czym to pierwsze lepsze jest od drugiego?
Z góry dziękuję za odpowiedzi.
Go to the top of the page
+Quote Post
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


bindValue() przy okazji filtruje dane. Treść zapytania jest dużo czytelniejsza - nie jest zaśmiecone jakimiś zmiennymi.
Go to the top of the page
+Quote Post
nexis
post
Post #3





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

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


1) przejrzystość
2) bezpieczeństwo (SQL Injection)
3) pilnowanie typów danych
Go to the top of the page
+Quote Post
e-ax
post
Post #4





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 27.05.2009

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


No tak, ale czy przejrzystość jest warta pisania 2 lub więcej razy większej objętości kodu?
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




przykladowo na liscie nexisa przejrzystosc byla tylko jednym z punktow. Najwazniejszym z nich jest bezpieczenstwo.
Co do przejrzystosci: tak warto. Moze nie przy kodzie, ktory ma 5 linijek, ale przy kodzie co ma 5 tys poczujesz roznice (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) (w sumie w roznych plikach 5 tys a nie w jednym - bez hardcorow (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) )
Go to the top of the page
+Quote Post
e-ax
post
Post #6





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 27.05.2009

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


Dziękuję bardzo za rozjaśnienie sytuacji (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 19:02