Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] Kilka pytań dotyczących poprawnej składni.
The Night Shadow
post 18.11.2006, 19:04:58
Post #1





Grupa: Zarejestrowani
Postów: 495
Pomógł: 2
Dołączył: 5.02.2006
Skąd: Wrocław

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


Mam zestaw takich zapytań:

1. Podług strony http://webmade.org/kursy/kurs_mysql/cz1.php (Jak piszą: "Według składni SQL nazwy pól i tabel powinno zawierać się w odwróconych apostrofach (`).") zapytanie powinno wyglądać tak:

  1. <?php
  2. $zapytanie_sprawdzania_postow = 'SELECT `s.id`, `s.shoutbox_data`';  
  3. $zapytanie_sprawdzania_postow .= ' FROM `'.$tabela_shoutbox.'` s';  
  4. $zapytanie_sprawdzania_postow .= ' WHERE `s.shoutbox_id_uzytkownika` >= `'.$_SESSION['id'].'` AND `s.shoutbox_data` >= `'.$czas_wstecz.'` AND `s.shoutbox_tresc` = `'.$nshoutbox_tresc.'`';
  5. $zapytanie_sprawdzania_postow .= ' LIMIT 1';
  6. ?>


...a więc z odwróconymi apostrofami.

2. Tak również działa:

  1. <?php
  2. $zapytanie_sprawdzania_postow = 'SELECT s.id, s.shoutbox_data';  
  3. $zapytanie_sprawdzania_postow .= ' FROM '.$tabela_shoutbox.' s';  
  4. $zapytanie_sprawdzania_postow .= ' WHERE s.shoutbox_id_uzytkownika >= ''.$_SESSION['id'].'' AND s.shoutbox_data >= ''.$czas_wstecz.'' AND s.shoutbox_tresc = ''.$nshoutbox_tresc.''';
  5. $zapytanie_sprawdzania_postow .= ' LIMIT 1';
  6. ?>


...a wiec w ZWYKŁE apostrofy ujęte są jedynie pola, w które wstawiane są dane z odpowiednich zmiennych. Bez tych apostrofów nie działa w przypadku, gdy jedna ze zmiennych zawiera znaki interpretowane przez serwer (o ile dobrze się wyrażam).

Moje pytanie... czy powinno się używać wszędzie odwróconych apostrofów?

Jeśli tak:
Jaką to ma zaletę?
Czy w przypadku nazw tabel skracanych do jednej litery, taki zapis: `'.$tabela_shoutbox.'` s jest poprawny?

Jeśli nie to, czy zwykłych apostrofów używać tylko tam, gdzie to konieczne, czy też wszędzie (nazwy tabel i pól)?

Ewentualnie jaki jest najbardziej poprawny sposób zapisywania zapytań w języku SQL?

*** Dopiero niedawno wpadłem na pomysł rozbijania zapytania na kolejne wiersze (Kolejno: SELECT, FROM, WHERE, GROUP, ORDER, LIMIT itd.), co wydaje mi się znacznie czytelniejszym.

Pozdrawiam i z góry dzięki za pomoc...


DOPISANE: teraz dopiero zwróciłem uwagę na to, że w odwrócone apostrofy ujęte są wyłącznie nazwy pól i tabel, ale nie wartości pól. Co jednak ciekawe podany przykład działa poprawnie, więc nie bardzo rozumiem... co tu jest poprawne, a co nie?

Ten post edytował The Night Shadow 18.11.2006, 19:13:30


--------------------
Programista Stron i Serwisów WWW oraz Aplikacji Internetowych
Specjalista ds. Pozycjonowania Aplikacji Internetowych
Copywriter
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 11:17