Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PostgreSQL]Prolem z dodawaniem do tabel które maja w nazwie myślnik (-)
yafu
post 25.06.2013, 08:09:32
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 1.06.2013

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


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!

Ten post edytował yafu 25.06.2013, 08:10:49
Go to the top of the page
+Quote Post
mmmmmmm
post 25.06.2013, 08:11:01
Post #2





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


"
Go to the top of the page
+Quote Post
b4rt3kk
post 25.06.2013, 08:18:57
Post #3





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


  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.



--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
yafu
post 25.06.2013, 08:26:31
Post #4





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 1.06.2013

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


Jak już wposmniałem cydzysłowy też nie działąją np: `it-name` nie przejdzie ...
No nic pozostaje mi jednak zamienić - na _ :/
Go to the top of the page
+Quote Post
mmmmmmm
post 25.06.2013, 09:13:37
Post #5





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


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"

Ten post edytował mmmmmmm 25.06.2013, 09:15:48
Go to the top of the page
+Quote Post
yafu
post 25.06.2013, 11:47:12
Post #6





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 1.06.2013

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


Heh, już pozmieniałem nazwy, ale wierzę, że Twój sposób działa, dzięki smile.gif
Go to the top of the page
+Quote Post

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.06.2025 - 03:15