Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SQL][SQLite][MySQL]Konfiguracja install.php
viamarimar
post
Post #1





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

Ostrzeżenie: (10%)
X----


Robie plik instalacyjny ktory ma sluzyc do instlacji cms. Nie wiem czy robie to poprawnie bardziej na logike. Uzytkownik podaje dane zatwierdza moze automatycznie skopiowac i wkleic do pliku lub plik mu sie utworzy z automatu i teraz krok nastepny towrza mu sie tabele w bazie.

Wykonuje to na zasadzie

  1. $s=zapytania
  2.  


problem mam wlascie z tymi zapytaniami? sa czystko nawet importowane z pma i nie dzialaja moze ktos w tym pomoc?


blad wyswietla:

  1. 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 'CREATE TABLE IF NOT EXISTS `galeria` ( `id` int(11) NOT NULL, `login` varcha' at line 16


  1. $s = "
  2. CREATE TABLE IF NOT EXISTS `event` (
  3. `id` int(11) NOT NULL,
  4. `login` varchar(100) NOT NULL,
  5. `data` datetime NOT NULL,
  6. `data_wydarzenia` date NOT NULL,
  7. `tytul` varchar(255) NOT NULL,
  8. `opis` text NOT NULL,
  9. `aktywny` int(11) NOT NULL,
  10. PRIMARY KEY (`id`)
  11. ) ENGINE=MyISAM AUTO_INCREMENT=79 DEFAULT CHARSET=utf8;
  12.  
  13.  
  14.  
  15.  
  16.  
  17. CREATE TABLE IF NOT EXISTS `galeria` (
  18. `id` int(11) NOT NULL,
  19. `login` varchar(50) NOT NULL,
  20. `pelnanazwa` varchar(10000) NOT NULL,
  21. `kodowanazwa` varchar(10000) NOT NULL,
  22. `pojemnosc` int(11) NOT NULL,
  23. `typ` varchar(255) NOT NULL,
  24. `data` datetime NOT NULL,
  25. `aktywny` int(11) NOT NULL,
  26. `ile` int(11) NOT NULL,
  27. `miniatura` varchar(10000) NOT NULL
  28. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  29.  
  30.  
  31.  
  32.  
  33. ";


w pma normalnie sie dodaja..

probowalem tez tak:
  1. CREATE TABLE IF NOT EXISTS `galeria` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `login` varchar(50) NOT NULL,
  4. `pelnanazwa` varchar(10000) NOT NULL,
  5. `kodowanazwa` varchar(10000) NOT NULL,
  6. `pojemnosc` int(11) NOT NULL,
  7. `typ` varchar(255) NOT NULL,
  8. `data` datetime NOT NULL,
  9. `aktywny` int(11) NOT NULL,
  10. `ile` int(11) NOT NULL,
  11. `miniatura` varchar(10000) NOT NULL
  12. PRIMARY KEY (`id`)
  13. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;


blad podobny

  1. 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 'CREATE TABLE IF NOT EXISTS `galeria` ( `id` int(11) NOT NULL AUTO_INCREMENT,' at line 16


Ten post edytował viamarimar 29.12.2014, 00:02:46
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 18)
fastlone
post
Post #2





Grupa: Zarejestrowani
Postów: 95
Pomógł: 15
Dołączył: 3.06.2010

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


Wywołaj każde z tych zapytań osobno.


--------------------
Nie bój się kliknąć
Go to the top of the page
+Quote Post
viamarimar
post
Post #3





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

Ostrzeżenie: (10%)
X----


tabela event sie tworzy tabela galeria ma problem bledy sa powyzej
Go to the top of the page
+Quote Post
com
post
Post #4





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


hmm:
  1. CREATE TABLE IF NOT EXISTS `galeria` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `login` varchar(50) NOT NULL,
  4. `pelnanazwa` text NOT NULL,
  5. `kodowanazwa` text NOT NULL,
  6. `pojemnosc` int(11) NOT NULL,
  7. `typ` varchar(255) NOT NULL,
  8. `data` datetime NOT NULL,
  9. `aktywny` int(11) NOT NULL,
  10. `ile` int(11) NOT NULL,
  11. `miniatura` text NOT NULL,
  12. PRIMARY KEY (`id`)
  13. ) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;


btw w pma się też nie dodaje tak jak miałeś, bo nie da się stworzyć varchar o długości 10000

Ten post edytował com 29.12.2014, 01:30:57
Go to the top of the page
+Quote Post
viamarimar
post
Post #5





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

Ostrzeżenie: (10%)
X----


-

//tak to rozwiazalo problem

TEXT Długość łańcucha +2 bajty Tekst o maksymalnej długości 65 535 znaków.

Czy to prawda? ze bez ustalania wartosci wpisuje sie tyle znakow?

Ten post edytował viamarimar 29.12.2014, 01:53:36
Go to the top of the page
+Quote Post
com
post
Post #6





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


http://stackoverflow.com/questions/6766781...mysql-type-text wink.gif

przeważnie tworzy sie bloba dla obrazków wink.gif
Go to the top of the page
+Quote Post
viamarimar
post
Post #7





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

Ostrzeżenie: (10%)
X----


no nie wiedzialem, przyda sie taka widza


jeszcze jedn kwiatek sie trafil:
  1. CREATE TABLE IF NOT EXISTS `liczniki` (
  2. `id` int(11) NOT NULL,
  3. `licznik` int(11) NOT NULL DEFAULT '0',
  4. PRIMARY KEY (`id`)
  5. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  6.  
  7. INSERT INTO `liczniki` (`id`, `licznik`) VALUES (1, 0),
  8. (2, 0),
  9. (3, 0);


  1. 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 'INSERT INTO `liczniki` (`id`, `licznik`) VALUES (1, 0), (2, 0), (3, 0)' at line 7


w pma

  1. #1062 - Duplicate entry '1' for key 'PRIMARY'


blad jest w insercie jakis ale o co mu chodzi nie wiem

rozpisanie na 3 osobne typu

INSERT INTO `liczniki` (`id`, `licznik`) VALUES (1, 0);
INSERT INTO `liczniki` (`id`, `licznik`) VALUES (2, 0);
INSERT INTO `liczniki` (`id`, `licznik`) VALUES (3, 0);

tez nic nie daje

Ten post edytował viamarimar 29.12.2014, 02:18:14
Go to the top of the page
+Quote Post
com
post
Post #8





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


duplikujesz wpisy dla indexu nr 1, bo już taki istnieje, nie masz auto_increment ustawione wiec nie mogą sie powtarzać, bo on sam sobie tego nie zwiekszy
Go to the top of the page
+Quote Post
viamarimar
post
Post #9





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

Ostrzeżenie: (10%)
X----


zrobilem tak:
  1. CREATE TABLE IF NOT EXISTS `liczniki` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `licznik` int(11) NOT NULL DEFAULT '0',
  4. PRIMARY KEY (`id`)
  5. ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
  6.  
  7. INSERT INTO `liczniki` (`id`, `licznik`) VALUES (1, 0),(2, 0),(3, 0);


czyli auto increment jest i blad ten sam
  1. 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 'INSERT INTO `liczniki` (`id`, `licznik`) VALUES (1, 0)' at line 7
  2. ‌
Go to the top of the page
+Quote Post
com
post
Post #10





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


usuń najpierw te tabele jak coś chcesz w niej zmieniać smile.gif

albo zrób na niej alter biggrin.gif ale tak czy owak wpis nr 1 już istnieje tongue.gif
Go to the top of the page
+Quote Post
viamarimar
post
Post #11





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

Ostrzeżenie: (10%)
X----


niestety jeszcze nie do konca ok.

Wiesz to plik konfiguracyjny a ja tak robie to na chybil trafil troche.Nie mam jakiegos algorytmu tylko tak.

Czyli najlepierw musze usunac wszystkie tabele ktore chce stworzyc i utowrzyc je na nowo?

CREATE TABLE IF NOT EXISTS - nie zapewnia mi stworzenia tabeli?

a moze zapwenia gdy nie istnieje ale nie modyfikacje hmm.. jakies pomysly na rozwiazanie tego?

tak na marginesie
tak liczba auto inc .. =1 oznacza od jakiego numeru idzie numeracja?
  1. ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;




edit.
dziala jak usuniesz z pma to tworzy sie tabela i dodaje rektord
z poziomu php juz nie chce sie wykonac ?
  1. CREATE TABLE IF NOT EXISTS `liczniki` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `licznik` int(11) NOT NULL DEFAULT '0',
  4. PRIMARY KEY (`id`)
  5. ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
  6.  
  7. INSERT INTO `liczniki` (`id`, `licznik`) VALUES (1, 0);


ps.

jaka jest roznica miedzy innoDB a myISAM czy jakos tak

Ten post edytował viamarimar 29.12.2014, 02:46:02
Go to the top of the page
+Quote Post
com
post
Post #12





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


jest tak jak same te polecenie mówi CREATE TABLE IF NOT EXISTS czyli utwórz tabele jeśli nie istnienie, wiec jak istnieje to on ten cały blok pomija, żeby zmodyfikować tabele używasz polecenia alter table ...
tak zgadza się od tego nr zacznie automatycznie numerować

a jak to tworzysz z poziomu php?

http://dimitrik.free.fr/blog/archives/11-0...11-30-2012.html
Go to the top of the page
+Quote Post
viamarimar
post
Post #13





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

Ostrzeżenie: (10%)
X----


no ok ale w tym momencie mam utworzona tabele z tym kluczem auto increment a on i tak nie chce mi dodawac rekordow w ten sposob? tabela jest pusta wiec alerta nie musze uzywac raczej, rekordy dodaje sie insertem.

Aktualny blad i chyba od poczatku taki sam:

  1. 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 'INSERT INTO `liczniki` (`id`, `licznik`) VALUES ('3', '0')' at line 7t4
  2. ?


  1.  
  2.  
  3.  
  4. $file='ustawienia/x.php';
  5. if (file_exists($file)) {
  6. #odczyt
  7. if (is_readable($file)) {
  8. include_once($file);
  9. }
  10. else {
  11. exit('<p>Plik konfiguracyjny jest nie do odczytu!</p>');
  12.  
  13. }
  14. #zapis
  15. if (is_writable($file)) {
  16. include_once($file);
  17. }
  18. else {
  19. exit('<p>Plik konfiguracyjny jest nie do zapisu!</p>');
  20. }
  21.  
  22. $t4 ="
  23. CREATE TABLE IF NOT EXISTS `liczniki` (
  24. `id` int(11) NOT NULL AUTO_INCREMENT,
  25. `licznik` int(11) NOT NULL DEFAULT '0',
  26. PRIMARY KEY (`id`)
  27. ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
  28.  
  29. INSERT INTO `liczniki` (`id`, `licznik`) VALUES ('3', '0');
  30. ";
  31.  
  32. mysql_query($t4) or die(mysql_error()."t4");
  33. echo 'Struktura tabel utworzona!';
  34. }
  35. else{
  36. header("location: install.php");
  37. }
  38.  


Wszystkie inne zapytania sie wykonuja raczej. Z tym jest klopot(poki co)

Ten post edytował viamarimar 29.12.2014, 03:02:20
Go to the top of the page
+Quote Post
com
post
Post #14





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


jakbyś mógł wkleić fragment z tym kodem gdzie to tworzysz smile.gif
Go to the top of the page
+Quote Post
viamarimar
post
Post #15





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

Ostrzeżenie: (10%)
X----


wkleilem wink.gif
Go to the top of the page
+Quote Post
com
post
Post #16





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


  1. $t4 ="
  2. CREATE TABLE IF NOT EXISTS `liczniki` (
  3. `id` int(11) NOT NULL AUTO_INCREMENT,
  4. `licznik` int(11) NOT NULL DEFAULT '0',
  5. PRIMARY KEY (`id`)
  6. ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
  7.  
  8. INSERT INTO `liczniki` (`id`, `licznik`) VALUES ('3', '0');
  9. ";
  10.  
  11. mysql_query($t4) or die(mysql_error()."t4");


nwm czy to bład tu sie wkrad podczas wklejania czy faktycznie tak miałeś ale zobacz to smile.gif

no i druga kwestia w php nie wykonasz tych 2 operacji naraz w taki sposób smile.gif

Ten post edytował com 29.12.2014, 03:06:57
Go to the top of the page
+Quote Post
viamarimar
post
Post #17





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

Ostrzeżenie: (10%)
X----


  1. 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 'INSERT INTO `liczniki` (`id`, `licznik`) VALUES ('3', '0')' at line 7


to samo ;/
Go to the top of the page
+Quote Post
com
post
Post #18





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


up smile.gif
  1. $t4 = "CREATE TABLE IF NOT EXISTS `liczniki` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `licznik` int(11) NOT NULL DEFAULT '0',
  4. PRIMARY KEY (`id`)
  5. ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
  6. ";
  7. mysql_query($t4) or die(mysql_error()."t4");
  8. $t5 ="INSERT INTO `liczniki` (`licznik`) VALUES ('0');";
  9. mysql_query($t5) or die(mysql_error()."t5");


tak zadziała smile.gif
Go to the top of the page
+Quote Post
viamarimar
post
Post #19





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

Ostrzeżenie: (10%)
X----


ale czlowiek sie z glupoty umie cieszyc haha.gif

  1. $t5 ="INSERT INTO `liczniki` (`licznik`) VALUES ('0');";


tylko dlaczego tak, niby sa auto id ale jak sie dodaje kolejny w zapytaniu to powinno dzialac

dwa jak nie bylo auto a dwalo sie zapytanie to tez powinno dodawac?

czy alter dziala na zasadzie jesli jest to zmien jesli nie ma to utworz?
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 Aktualny czas: 20.08.2025 - 08:03