Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Ilość instrukcji warunkowych a wydajność
Barton
post
Post #1





Grupa: Zarejestrowani
Postów: 70
Pomógł: 2
Dołączył: 26.10.2008

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


Witam,

Pisząc swój skrypt natknąłem się na 'moralny' dylemat. (IMG:style_emoticons/default/smile.gif) Mianowicie starając się jak najbardziej skrócić kod, stworzyłem kod który w wyniku skracania ma.. dwie instrukcje warunkowe więcej niż w pierwotnym rozwiązaniu. Obecnie wygląda on tak:

  1. try {
  2. $pdo = new PDO('mysql:host=localhost;dbname=baza', 'xxx', 'yyy', array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
  3. $pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  4.  
  5. $imie = $pdo -> prepare ("UPDATE users_act SET ".($_POST['imie'] !== "" ? "imie=:imie" : "")." ".($_POST['nazwisko'] !== "" && $_POST['imie'] !== "" ? "," : "")." ".($_POST['nazwisko'] !== "" ? "nazwisko=:nazwisko" : "")." WHERE login=:login");
  6.  
  7. $_POST['imie'] !== "" ? $imie-> bindValue(':imie', trim($_POST['imie']), PDO::PARAM_STR) : "";
  8. $_POST['nazwisko'] !== "" ? $imie -> bindValue(':nazwisko', trim($_POST['nazwisko']), PDO::PARAM_STR) : "";
  9. $imie -> bindValue(':login', $login, PDO::PARAM_STR);
  10.  
  11. $ile = $imie -> execute();
  12.  
  13. $imie -> closeCursor();
  14. }
  15.  
  16. catch(PDOException $e){
  17. echo 'Błąd bazy danych';
  18. }


Mogłem to zrobić tworząc 3 warunki: albo 'imie' i 'nazwisko' wypełnione, albo samo 'imie', albo samo 'nazwisko' - a następnie do każdego warunku inne zapytanie. W wyżej zamieszczonym rozwiązaniu zmieściłem niejako wszystko w jednym zapytaniu ale utworzyło się... 5 instrukcji warunkowych. Które rozwiązanie będzie korzystniejsze jeśli chodzi o wydajność skryptu?

Pozdrawiam.

Ten post edytował Barton 22.01.2012, 22:42:40
Go to the top of the page
+Quote Post

Posty w temacie


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: 27.09.2025 - 06:43