Pisząc swój skrypt natknąłem się na 'moralny' dylemat.

try { $pdo = new PDO('mysql:host=localhost;dbname=baza', 'xxx', 'yyy', array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")); $pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $imie = $pdo -> prepare ("UPDATE users_act SET ".($_POST['imie'] !== "" ? "imie=:imie" : "")." ".($_POST['nazwisko'] !== "" && $_POST['imie'] !== "" ? "," : "")." ".($_POST['nazwisko'] !== "" ? "nazwisko=:nazwisko" : "")." WHERE login=:login"); $_POST['nazwisko'] !== "" ? $imie -> bindValue(':nazwisko', trim($_POST['nazwisko']), PDO::PARAM_STR) : ""; $imie -> bindValue(':login', $login, PDO::PARAM_STR); $ile = $imie -> execute(); $imie -> closeCursor(); } catch(PDOException $e){ }
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.