![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 0 Dołączył: 9.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Od razu przepraszam jakby temat się powtórzył, ale nie mogłem znaleźć podobnego. ; ) Jako początkujący w MySQL, chciałbym się dowiedzieć jak dobrze pisać zapytania. Może wyjaśnię mój problem na przykładzie:
. Jak zauważyłem niektórzy obok zmiennej id wstawiają "', lub pojedyńcze dwa apostrofy(id=''.$id.''). Czasem zdarzyło mi się zobaczyć, że wysępuje tylko jeden apostrof. Jak poprawnie, i przede wszystkim optymalnie i dobrze pisać zapytania? Chodzi jeszcze o zaczynanie zapytania. Nie wiem czy robi to jakąś różnice, ale wolę spytać. Lepiej zaczynac od ', czy "? Drugą sprawą są backslashe. Po co, i kiedy je wykorzystywać? Czy ich wykorzystanie ma jakiś związek z filtracją danych? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 233 Pomógł: 87 Dołączył: 6.03.2009 Ostrzeżenie: (40%) ![]() ![]() |
Wydaje mi się że o ile nie masz zamiaru zostać specem od baz danych, to taka wiedza jest nieprzydatna. Ja na przykład nie wiem nic na temat niuansów w różnicach składni jeżyka SQL pomiędzy różnymi bazami danych. Przypuszczam że miałbym nie lada problem aby napisać nawet najprostsze zapytanie. Dostatecznie trudne jest ciągłe przełączane się między PHP i JavaScript, nie widzę nic przyjemnego w perspektywie dobijania tego SQLem (IMG:style_emoticons/default/smile.gif) Oczywiście bazy danych są niezbędne, dlatego wynaleziono między innymi cos takiego jak ActiveRecords.
Mam nadzieje że skuszony oślepiającą prostotą, zdecydujesz się na to rozwiązanie. |
|
|
--michu_06-- |
![]()
Post
#3
|
Goście ![]() |
jak już piszesz to całość/
1.)
2.)
Apostrof od cudzysłowie różni się tym, że apostrof informuje parser o tym iż zawartość w nim podana nie zawiera żadnych zmiennych itp. które by musiały zostać dodatkowo przetworzone przez parser . Natomiast cudzysłowie informuje, iż w podanych w nim wartościach istnieją zmienne, które muszą zostać sprawdzone przez parser. Różnice to tylko czas w generowaniu, zarówno dla mysql jak i php. co nie zmienia faktu, że oba zapytania są nie poprawnie napisane pod względem wydajności. dla zmiennych typu INT BIGINT TINYINT (itd. chodzi o liczby całkowite) nie powinniśmy stosować cudzysłowia ani apostrofu, poprawne zapytanie powinno wyglądać tak :
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 778 Pomógł: 84 Dołączył: 29.07.2010 Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury. Ostrzeżenie: (20%) ![]() ![]() |
filtrujesz dane funkcjami
addslashes, htmlspecialchars itp. aby nikt Ci bazy nie wykasował w np. wyszukiwarce (IMG:style_emoticons/default/tongue.gif) |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 702 Pomógł: 65 Dołączył: 16.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
[html][/html]
filtrujesz dane funkcjami addslashes, htmlspecialchars itp. aby nikt Ci bazy nie wykasował w np. wyszukiwarce (IMG:style_emoticons/default/tongue.gif) Brawo za spostrzegawczość ,pokaż stronę w której tak filtrujesz dane ,chętnie sprawdzę (IMG:style_emoticons/default/exclamation.gif) od filtrowania danych jest mysql_real_escape_string |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 07:12 |