Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PostgreSQL]Prolem z dodawaniem do tabel które maja w nazwie myślnik (-)
Forum PHP.pl > Forum > Przedszkole
yafu
Mam coś takiego:


  1. $sql = "insert into ended (item)
  2. values('$item')";
  3. $result = pg_query($dbh, $sql);
  4. IF (!$result) {
  5. die("Error in SQL query: " . pg_last_error());
  6. }
  7.  


Działa bez problemu, jednak gdy dodam kolejną tabelę:

  1. $sql = "insert into ended (item,it-name)
  2. values('$item','$itname')";
  3. $result = pg_query($dbh, $sql);
  4. IF (!$result) {
  5. die("Error in SQL query: " . pg_last_error());
  6. }


To dostaję błąd:
Error in SQL query: ERROR: syntax error at or near "-" LINE 1: insert into ended (item,it-name) ^

Próbowałem to dawać w rozmaite cudzysłowy, jakoś przebudowywać, ale ciągle nie mogę niczego dodać do tabel w któych jest myślnik w nazwie.
Raczej odpada zmiana nazw tabel na bez myślników, ale przecież musi być jakiś sposób, żeby dodać dane do tabeli która w nazwie ma "-" questionmark.gif?

Z góry dziękuję za pomoc!
mmmmmmm
"
b4rt3kk
  1. $sql = "insert into ended (item,`it-name`) values('$item','$itname')";


Nie powinno się stosować myślników w nazwach tabel, jak i w ogóle w nazwach zmiennych, itp. bo jest to także znak odejmowania i wiele języków właśnie tak to będzie interpretować, jakbyś chciał odjąć jedno od drugiego.

yafu
Jak już wposmniałem cydzysłowy też nie działąją np: `it-name` nie przejdzie ...
No nic pozostaje mi jednak zamienić - na _ :/
mmmmmmm
Kurde.
  1. $sql = "insert into ended (item,\"it-name\") values('$item','$itname')";

Tylko ma to tę wadę, że dokłądnie szuka takiego pola - jest Case Sensitive. o ile pole item możesz zapisać sobie Item, ITEM, iTEM, o tyle w " MUSISZ zapisać "item"
yafu
Heh, już pozmieniałem nazwy, ale wierzę, że Twój sposób działa, dzięki smile.gif
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.