Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PostgreSQL]postgresql gdzie jest błąd
silverwind
post 10.05.2015, 13:52:48
Post #1





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 8.02.2013

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


wyskakuje błąd Warning: pg_query(): Query failed: BŁĄD: błąd składni w lub blisko "`" LINE 1: INSERT INTO `osoby` (`Imie`, `Nazwisko`,`Wiek`) VALUES ('Ewa... ^ in


  1. <?php
  2. //
  3. // Nawiązanie połączenia, wybór bazy danych
  4.  
  5. $con = pg_pconnect("host=localhost dbname=my_db user=postgres password=cyber1985")
  6. or die('Nie można nawiązać połączenia: ' . pg_last_error());
  7.  
  8.  
  9.  
  10.  
  11. $stoper_start = time(true);
  12.  
  13.  
  14. usleep(10000);
  15. $query = "INSERT INTO `osoby` (`Imie`, `Nazwisko`,`Wiek`) VALUES ";
  16.  
  17.  
  18. for($i=0; $i<50000; $i++)
  19. {
  20. $query .= "('Ewa', 'Ciemala', '87'),";
  21.  
  22. }
  23.  
  24. $query = substr($query, 0, -1); // na końcu nie może być przecinka więc go ucinam
  25. pg_query($query);
  26.  
  27.  
  28.  
  29. $stoper_stop = time(true); //koniec pomiaru
  30.  
  31. $wynik=bcsub($stoper_stop, $stoper_start,0);
  32. //$wynik_tab[$j] = array($wynik);
  33. //print_r($wynik_tab[$j]);
  34. //}
  35.  
  36.  
  37.  
  38.  
  39.  
  40. ?><p class="wynik"><h1> <?php echo $wynik; echo " sekundy" ?></h1></p>;
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48. <?php
  49. pg_close($con);
  50. ?>
Go to the top of the page
+Quote Post
mmmmmmm
post 10.05.2015, 14:49:48
Post #2





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

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


W postgreSQL nie ma grawisów. Są cudzysłowia.
Czyli powinno być:
  1. INSERT INTO "osoby" ("Imie", "Nazwisko","Wiek") VALUES

Tylko musisz wziąc pod uwagę, że w postgreSQL napisane w cudzysłowiu MUSZA się dokładnie tak nazywać, czy w twoim przykładzie pole musi być "Wiek", nie "WIEK", albo "wiek"
Go to the top of the page
+Quote Post
silverwind
post 10.05.2015, 15:23:16
Post #3





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 8.02.2013

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


[quote name='mmmmmmm' date='10.05.2015, 15:49:48 ' post='1157531']
W postgreSQL nie ma grawisów. Są cudzysłowia.
Czyli powinno być:
  1. INSERT INTO "osoby" ("Imie", "Nazwisko","Wiek") VALUES

Tylko musisz wziąc pod uwagę, że w postgreSQL napisane w cudzysłowiu MUSZA się dokładnie tak nazywać, czy w twoim przykładzie pole musi być "Wiek", nie "WIEK", albo "wiek"
[/

Nie działa chcę podkreślić że w bazie danych jest dokładnie tak samo napisane
teraz mam taki błąd
PHP Parse error: syntax error, unexpected 'osoby' (T_STRING)
Go to the top of the page
+Quote Post
viking
post 10.05.2015, 15:33:17
Post #4





Grupa: Zarejestrowani
Postów: 6 376
Pomógł: 1116
Dołączył: 30.08.2006

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


Pewnie zrobiłeś coś takiego?
  1. $query = "INSERT INTO "osoby" ("Imie", "Nazwisko","Wiek") VALUES ";


Wracamy do podstaw http://php.net/manual/en/language.types.st...g.syntax.single


--------------------
Go to the top of the page
+Quote Post
silverwind
post 10.05.2015, 15:39:19
Post #5





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 8.02.2013

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


Tak mi doradził twój poprzednik to jak to w końcu ma być tym postgresql bo na każdej stronie inaczej pisze.
Go to the top of the page
+Quote Post
viking
post 10.05.2015, 15:45:20
Post #6





Grupa: Zarejestrowani
Postów: 6 376
Pomógł: 1116
Dołączył: 30.08.2006

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


Zadaj sobie poważne pytanie jak się łączy stringi w PHP jeżeli w powyższym nie widzisz błędu smile.gif
Ma być tak jak kolega powiedział tylko poprawnie w PHP zapisane.


--------------------
Go to the top of the page
+Quote Post
silverwind
post 10.05.2015, 15:54:53
Post #7





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 8.02.2013

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


można użycz kopki . lub .=
Go to the top of the page
+Quote Post
viking
post 10.05.2015, 16:07:22
Post #8





Grupa: Zarejestrowani
Postów: 6 376
Pomógł: 1116
Dołączył: 30.08.2006

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


Super, a teraz czym się różni definicja stringu:
"jestem sobie $zmienna"
'jestem sobie "zmienna"'
"jestem sobie \"zmienna\""
"jestem sobie" . $zmienna


--------------------
Go to the top of the page
+Quote Post
silverwind
post 10.05.2015, 16:58:56
Post #9





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 8.02.2013

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


1 pierwszym jest użyty cudzysłów - szuka odwołania do innych zmiennych
2. apostrofy nie odwołują się -będzie dokładnie to co jest napisane
3. użycie \ powoduje że będą cudzysłowy w tekście
4.dodanie zmiennej do zdania

Ale to nie rozwiązuje mojego problemu wciąż mam jakieś błędy ja już jestem głupi z tego
Go to the top of the page
+Quote Post
pasman
post 10.05.2015, 17:14:32
Post #10





Grupa: Zarejestrowani
Postów: 70
Pomógł: 4
Dołączył: 16.03.2012

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


spróbuj czegoś prostszego - funkcji pg_insert

chociaż może Cię nie doceniam..

Ten post edytował pasman 10.05.2015, 17:16:50
Go to the top of the page
+Quote Post
silverwind
post 10.05.2015, 17:45:36
Post #11





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 8.02.2013

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


to część to chyba tak
  1. $query = 'INSERT INTO "osoby" ("Imie","Nazwisko","Wiek") VALUES' ;

a ta druga jak
  1. for($i=0; $i<50000; $i++)
  2. {
  3. $query .= '(`Ewa`,`Ciemala`,`87`),';
  4.  
  5. }


mam teraz taki błąd

ning: pg_query(): Query failed: BŁĄD: kolumna "ewa" nie istnieje LINE 1: ...T INTO "osoby" ("Imie","Nazwisko","Wiek") VALUES(`Ewa`,`Ciem... ^ in
Go to the top of the page
+Quote Post
viking
post 10.05.2015, 18:09:29
Post #12





Grupa: Zarejestrowani
Postów: 6 376
Pomógł: 1116
Dołączył: 30.08.2006

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


Ponownie " zamiast `, natomiast wiek jest pewnie liczbą więc bez dodatkowych ciapek.


--------------------
Go to the top of the page
+Quote Post
silverwind
post 10.05.2015, 18:24:14
Post #13





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 8.02.2013

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


  1. for($i=0; $i<50000; $i++)
  2. {
  3. $query .= '("Ewa", "Ciemala",87)';
  4.  
  5. }


Warning: pg_query(): Query failed: BŁĄD: błąd składni w lub blisko "(" LINE 1: ...ie","Nazwisko","Wiek") VALUES("Ewa", "Ciemala",87)("Ewa", "C... ^
Masakra
Go to the top of the page
+Quote Post
viking
post 10.05.2015, 18:31:03
Post #14





Grupa: Zarejestrowani
Postów: 6 376
Pomógł: 1116
Dołączył: 30.08.2006

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


Przecinek po każdym VALUES. Spróbuj to ogarnąć czytając komunikaty albo dokumentację bo faktycznie masakra.


--------------------
Go to the top of the page
+Quote Post
silverwind
post 10.05.2015, 18:54:39
Post #15





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 8.02.2013

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


Ja juz mam dośc widocznie jakiś głupi jestem chyba z 10 kobinacjii próbowałem


  1. for($i=0; $i<50; $i++)
  2. {
  3. $query .='("Ewa","Ciemala",87),';
  4.  
  5. }
  6.  
  7. $query = substr($query, 0, -1); // na końcu nie może być przecinka więc go ucinam
  8. pg_query($con,$query);




Warning: pg_query(): Query failed: BŁĄD: kolumna "Ewa" nie istnieje LINE 1: ...RT INTO "osoby" ("Imie","Nazwisko","Wiek") VALUES("Ewa","Cie... ^
Niech ktoś to napisze bo mnie poj.... Proszę
Go to the top of the page
+Quote Post
mmmmmmm
post 10.05.2015, 21:31:12
Post #16





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

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


K..a mać. Ileż można pisać... W " wstawiasz nazwy kolumn. generalnie, jeżli nie mają żadnych udziwnień, typu polskie znaki, spacje, inne gówna, bądź mieszana wielkość liter, to i tu możesz olać cudzysłowia. Inne stringo w ' - aporstrofach.
Tak ma wyglądać kod SQL (PHP nie napiszę, bo mi się nie chce):
  1. INSERT INTO osoby("Imie", "Nazwisko", "Wiek") VALUES('Ewa', 'Ciamala', 87), ('Bożydar', 'Nowicki', 16), ...
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: 9.05.2025 - 06:01