Zapytanie do mysql chyba niepoprawne

0
<form action="" method="post"> nazwa: <input type="text" name="nazwa"></br> <input type="submit" value="Dodaj"></form> <?php INCLUDE ('polacz.php'); $query = mysql_query("CREATE TABLE `formacjasl_da2`.`".$_POST['nazwa']."` ( `id` INT( 10 ) NOT NULL default , `nazwa` VARCHAR( ) NOT NULL , `rok` INT( 4 ) NOT NULL , `poziom` INT( 5 ) NOT NULL , `typ` INT( 1 ) NOT NULL , PRIMARY KEY ( `id` ) )")

nie rozumiem za bardzo tych kropek gdy wstawiam kod html w kodzie php i na odwrót. ktoś mógłby mi wytłumaczyć proszę? :)

1

Google: łączenie stringów php.
To są podstawy podstaw z podstaw. Z takimi rzeczami nie przychodzi się na forum, naprawdę..

EDIT: Moment! Nie umiesz łączyć stringów i bierzesz się za bazy danych?!?!?!

0
  1. po pierwsze. dlaczego wstawiasz wartość z $_POST bezpośrednio do zapytania bez sprawdzania co user wysłał. aż się prosi o sql injection. http://zipmeme.com/uploads/generated/g1346968605628461767.jpg
  2. polecam funkcje sprintf do łączenia stringów - zwiększa czytelność
  3. dlaczego zapytanie "chyba niepoprawne"?
0
dawidgarus napisał(a):
  1. polecam funkcje sprintf do łączenia stringów - zwiększa czytelność

po co sprintf skoro można po prostu skorzystać z funkcjonalności wstawiania zmiennych bezpośrednio w cudzysłowach np:

"SELECT costam FROM costam WHERE kolumna='{$zmienna}' LIMIT 1"

0

dla czytelności? z tego samego powodu dla którego stosuje się szablony... żeby nie mieszać tekstu i zmiennych

dla mnie dużo czytelniejsze jest

$q = "SELECT {$kolumny} FROM {$tabela} WHERE {$kolumna1} = '{$wartosc1}' AND {$kolumna2} = '{wartosc2}'";

niż:

$q = sprintf("SELECT %s FROM %s WHERE %s = '%s' AND %s = '%s'", $kolumny, $tabela, $kolumna1, $wartosc1, $kolumna2, $wartosc2);

:D jeżeli sądzisz że drugi przykład jest czytelniejszy to pozdro&poćwicz ;)

w szablonach raczej miesza się tekst i zmienne i wyglądają mniej więcej tak jak linijka z mojego przykładu (smarty)
co najwyżej oddzielony jest kod...

1 użytkowników online, w tym zalogowanych: 0, gości: 1