![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 14.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam sobie kod PHP, ktory zaklada tabele w bazie i potem probuje wpisac do niej dane. Tabela jest pusta, zreszta zakladanie tabeli dziala OK. Problem jest, ze kod nie chce dzialac i wywala sie blad skladniowy (Syntax error).
podczas gdy wklepanie z konsoli linii w terminalu mySQLa: INSERT INTO xxx (aktywna, typ) VALUES (1,1); Dziala .... Wie ktos, w czym tkwi przyczyna ? Zmienne sa OK, nazwy pol tez. Dziekuje |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 1 Dołączył: 23.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 115 Pomógł: 0 Dołączył: 16.04.2005 Skąd: Białowieża Ostrzeżenie: (0%) ![]() ![]() |
Przy nazwach pól i tabel stosujemy (chociaż nie musimy) tzw. apostrof podtyldowy - `xxx`. Przy wartościach są apostrofy normalne 'xxx'.
-------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 173 Pomógł: 121 Dołączył: 24.09.2007 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
Sprawdź ten kod powinien działać. A $tablename to pobierasz z formularza metodą post, czy w linku i metodą get? Ten post edytował ExPlOiT 2.11.2007, 15:48:04 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 873 Pomógł: 25 Dołączył: 24.07.2005 Ostrzeżenie: (0%) ![]() ![]() |
yo, pewnie masz jeszcze oprócz tych dwóch pól jakieś ID, które samo sie inkrementuje czy coś w tym stylu .
Musisz dać values ('', xxxxx,xxxxx) i przedtem tez i bedzie git |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 14.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
yo, pewnie masz jeszcze oprócz tych dwóch pól jakieś ID, które samo sie inkrementuje czy coś w tym stylu . Musisz dać values ('', xxxxx,xxxxx) i przedtem tez i bedzie git Witam ponownie, Tak, baza zawiera znacznie wiecej pol, jednak dla przejrzystosci zmienilem kod tak, jakby mialo sie dodawac tylko kilka wartosci. Pierwszym polem jest `polozenie` z autoinkrementacja. I teraz mialem napisac, co chodzi, a co nie - gdyby nie to, ze teraz blad dotyczy pierwszego zapytania sql (w kodzie, ktory podalem chodzilo o drugie zapytanie). Pierwsze zapytanie zwyczajnie tworzy tabele i jest to CTRL+C / CTRL+V z dumpa sql-a, znaczy sie wyeksportowalem baze do pliku tekstowego i wycialem odpowiednie wpisy tworzace interesujaca mnie tabele. Jedynie nazwe tabeli zmienilem, bo ma byc ona co chwila inna (tak, tak) - i to jest odpowiedz do poprzednika, ktory pytal sie, skad biore $tablename. A wiec $tablename biore poprzez zlaczenie przedrostka i aktualnej daty, wiec zadne GETy, POSTy itd ![]() A powyzsza czesc skryptu to inicjalizator calej zabawy, w tym wlasnie bazy danych. Z tym, ze wlasnie przestala mi chodzic czesc tworzaca tabele w bazie, bardzo to dziwne. Moze wrzuce blad, jaki teraz dostaje: Query Error : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''polozenie' int(6) NOT NULL auto_increment, 'aktywna' tinyint(1) NOT NULL, '' at line 2 I nie mam pojecia, jak sprawdzic, o co chodzi (moze jakies sugestie, jakis parser albo cokolwiec co da mi clue) ? Linijka kodu odpowiadajaca powyzszemu to:
Czyzby chodzilo o to, ze nie mozna wpisywac rekordu czesciowo, jesli pola maja ceche NOT NULL (czyli ze chcac wpisac jedna wartosc trzeba i tak sie przemeczyc i wpisac wszystkie 30 pol, czy ile tam tego mam) ? Jesli tak - to by sie zgadzalo, ze moj "skrot" byl batem na samego siebie, bo gdybym nie skracal, wszystko chodziloby. Tylko o co teraz chodzi z tym bledem przy tworzeniu tabeli w bazie ? Baza otwarta i wybrana (use), dalej nie mam pojecia, w czym rzecz. Macie jakies pomysly ? Dziekuje |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 1 173 Pomógł: 121 Dołączył: 24.09.2007 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
daj mi nazwy kolumn w tabeli do której chcesz dodać dane, to Ci napisze ten skrypt i będziesz wiedział gdzie miałeś błędy.
Ten post edytował ExPlOiT 2.11.2007, 18:59:49 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 23 Pomógł: 2 Dołączył: 26.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
Moze wrzuce blad, jaki teraz dostaje: Query Error : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''polozenie' int(6) NOT NULL auto_increment, 'aktywna' tinyint(1) NOT NULL, '' at line 2 I nie mam pojecia, jak sprawdzic, o co chodzi (moze jakies sugestie, jakis parser albo cokolwiec co da mi clue) ? Linijka kodu odpowiadajaca powyzszemu to:
Nazwy kolumn mogą być albo w w takich apostrofach ` albo w ogóle bez. Ale "zwykłe" ![]() |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 14.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
daj mi nazwy kolumn w tabeli do której chcesz dodać dane, to Ci napisze ten skrypt i będziesz wiedział gdzie miałeś błędy. Juz dziala, dzieki wszystkim. Dwie rzeczy naraz pomogly: zmiana ' na podtyldowy ` wprzypadku nazw tabel oraz kolumn, no a po drugie ta autoinkrementacja ![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 02:31 |