Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Kilka pytań dotyczących poprawnej składni.
Forum PHP.pl > Forum > Przedszkole
The Night Shadow
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?
Dandelion
ale czemu nie wrzucisz tego zapytania do jednej zmiennej ?

osobiscie uzywam czegos w tym stylu

  1. <?php
  2. $query= ("SELECT $skad.*, kategorie.nazwa
  3. FROM $skad
  4. LEFT JOIN kategorie ON (kategorie.id = $skad.id_kat)");
  5. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.