Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][mysql] Problem z utworzeniem tabeli w php/mysql
Setesh
post
Post #1





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 2.10.2006
Skąd: Wrocław

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


Witam.

Mam problem z utworzeniem tabeli w php - niby przykład jest ok ale coś mi nie działa utworzenie tabeli ponieważ mam jakiś błąd w składni - możeci mi podpowiedzieć gdzie ?

Błąd :

1064: 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 ')' at line 1

składnia polecenia :
  1. $query ="user_number MEDIUMINT(10) DEFAULT '0' NOT NULL AUTO_INCREMENT,";
  2. $query.="user_id VARCHAR(8) BINARY NOT NULL,";
  3. $query.="user_name VARCHAR(30) NOT NULL,";
  4. $query.="user_password VARCHAR(20) BINARY NOT NULL,";
  5. $query.="user_country VARCHAR(50) NOT NULL,";
  6. $query.="user_email VARCHAR(50) NOT NULL,";
  7. $query.="user_profile TEXT NOT NULL,";
  8. $query.="user_registre_date DATE DEFAULT '0000-00-00' NOT NULL,";
  9. $query.="user_last_access_time TIMESTAMP(14),";
  10. $query.="PRIMARY KEY(user_id),";
  11. $query.="UNIQUE user_number(user_number)";


Liczę na waszą pomoc bo takie ponoć podstawowe i proste zapytanie a nie wiem co jest w nim źle sad.gif

Jeżeli ktoś może mi jeszcze poradzić jak podzielić bazę danych odnośnie informacji o użytkowniku to też będę wdzięczny.

Docelowo chcę stworzyć 2 tabele dla użytkownika - w pierwszej mają być wszelkie informacje jakie użytkownik będzie podawał podczas rejestracji a w drugiej będą inne informacje powiązane z użytkownikiem i innymi danymi.

Ten post edytował Setesh 21.01.2011, 18:27:53


--------------------
Znudził Ci się wygląd twojej v39'ki ? Zmień to! :)

| Google | CodeGear | Swiss Delphi Center (ENG) | digitalmars.com | 4programmers.net | dsdt.info | BinBoy | delphi.cartall.com.pl | CPW.net.pl | cyfbar.republika.pl|
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




A gdzie zjadles początek, czyli
CREATE TABLE blabla
?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Setesh
post
Post #3





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 2.10.2006
Skąd: Wrocław

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


  1. $dbname = "komoorkowo";
  2. $user_tablename = "user";
  3.  
  4. $query ="user_number MEDIUMINT(10) DEFAULT '0' NOT NULL AUTO_INCREMENT,";
  5. $query.="user_id VARCHAR(8) BINARY NOT NULL,";
  6. $query.="user_name VARCHAR(30) NOT NULL,";
  7. $query.="user_password VARCHAR(20) BINARY NOT NULL,";
  8. $query.="user_country VARCHAR(50) NOT NULL,";
  9. $query.="user_email VARCHAR(50) NOT NULL,";
  10. $query.="user_profile TEXT NOT NULL,";
  11. $query.="user_registre_date DATE DEFAULT '0000-00-00' NOT NULL,";
  12. $query.="user_last_access_time TIMESTAMP(14),";
  13. $query.="PRIMARY KEY(user_id),";
  14. $query.="UNIQUE user_number(user_number)";
  15.  
  16. $link_id = db_connect();
  17. if(!$link_id) die(sql_error());
  18.  
  19. if(!mysql_query("CREATE TABLE $user_tablename ($query)")) die(sql_error()); // JEST TUTAJ :)
  20. else echo "utworzono tabele";


// EDIT :

query -> $query // poprawiłem przy wywołaniu

teraz mam inny błąd sad.gif

"1067: Invalid default value for 'user_number'"

sad.gif

Jakby co będę około 15:00 to zobaczę co jeszcze dopatrzę się ale nie wiem jaka inna wartość może być poza "0" dla auto inc kiedy nie może być też null sad.gif

Ten post edytował Setesh 21.01.2011, 12:59:51


--------------------
Znudził Ci się wygląd twojej v39'ki ? Zmień to! :)

| Google | CodeGear | Swiss Delphi Center (ENG) | digitalmars.com | 4programmers.net | dsdt.info | BinBoy | delphi.cartall.com.pl | CPW.net.pl | cyfbar.republika.pl|
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




od kiedy dla MEDIUMINT domyslna wartoscią jest tekst?

nie '0'
a: 0


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Setesh
post
Post #5





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 2.10.2006
Skąd: Wrocław

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


$query ="user_number MEDIUMINT(10) DEFAULT 0 NOT NULL AUTO_INCREMENT,";

zmieniłem i nadal że zła wartość sad.gif


--------------------
Znudził Ci się wygląd twojej v39'ki ? Zmień to! :)

| Google | CodeGear | Swiss Delphi Center (ENG) | digitalmars.com | 4programmers.net | dsdt.info | BinBoy | delphi.cartall.com.pl | CPW.net.pl | cyfbar.republika.pl|
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




autoincrement nie ma domyslnej wartosci winksmiley.jpg


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Setesh
post
Post #7





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 2.10.2006
Skąd: Wrocław

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


$query ="user_number MEDIUMINT(10) NOT NULL AUTO_INCREMENT,";

no i gitara guitar.gif

Dzięki wielkie smile.gif Zawsze to trochę się nauczyłem smile.gif

Ten post edytował Setesh 21.01.2011, 13:06:55


--------------------
Znudził Ci się wygląd twojej v39'ki ? Zmień to! :)

| Google | CodeGear | Swiss Delphi Center (ENG) | digitalmars.com | 4programmers.net | dsdt.info | BinBoy | delphi.cartall.com.pl | CPW.net.pl | cyfbar.republika.pl|
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




1)
Cytat
[początkujący]

Co to za tag? Tag ma odzwierciedlac rodzaj problemu a nie Twoj stan wiedzy. popraw

2)
nie:MEDIUMINT(10)
a:MEDIUMINT
10 niczemu nie sluzy.

3)
Niby robisz autoincrement user_number, ale jako klucza głównego uzywasz user_id i to na dodatek tekstu. Czemu to niby ma sluzyc? Zazwyczaj kluczem głównym jest autoincrement

4)
user_password VARCHAR(20)
haslo trzymasz jawnie? Zle
Haslo trzymasz w hashu? To po co zmienna dlugosc pola?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Setesh
post
Post #9





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 2.10.2006
Skąd: Wrocław

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


  1. $dbname = "komoorkowo";
  2. $user_tablename = "user";
  3.  
  4. $query.="user_id MEDIUMINT NOT NULL AUTO_INCREMENT,";
  5. $query.="user_name VARCHAR(30) NOT NULL,";
  6. $query.="user_password VARCHAR(20) BINARY NOT NULL,";
  7. $query.="user_country VARCHAR(50) NOT NULL,";
  8. $query.="user_email VARCHAR(50) NOT NULL,";
  9. $query.="user_profile TEXT NOT NULL,";
  10. $query.="user_registre_date DATE DEFAULT '0000-00-00' NOT NULL,";
  11. $query.="user_last_access_time TIMESTAMP(14),";
  12. $query.="PRIMARY KEY(user_id),";
  13. $query.="UNIQUE user_number(user_number)";
  14.  
  15. $link_id = db_connect();
  16. if(!$link_id) die(sql_error());
  17.  
  18. if(!mysql_query("CREATE TABLE $user_tablename ($query)")) die(sql_error());
  19. else echo "utworzono tabele";


Ok poprawiłem co się dało (mam nadzieję że dobrze) ale nie wiem jak z hasłem zrobić sad.gif Mógłbym prosić o gotowy przykład jak to zrobić aby było zahashowane ? Czytałem o opcji
  1. password($user_password);
i że ponoć samo hash załatwia (a może coś mi się pomyliło sad.gif )

Zmieniłem unikalny element na user_email i user_name (wydawało się najrozsądniejsze) :

  1. $query.="UNIQUE user_email(user_email, user_name)";


Obecne zapytanie wygląda tak :

  1. $query.="user_id MEDIUMINT NOT NULL AUTO_INCREMENT,";
  2. $query.="user_email VARCHAR(50) NOT NULL,";
  3. $query.="user_password CHAR BINARY NOT NULL,";
  4. $query.="user_name VARCHAR(30) NOT NULL,";
  5. $query.="user_country VARCHAR(50) NOT NULL,";
  6. $query.="user_profile TEXT NOT NULL,";
  7. $query.="user_registre_date DATE DEFAULT '0000-00-00' NOT NULL,";
  8. $query.="user_last_access_time TIMESTAMP(14),";
  9. $query.="PRIMARY KEY(user_id),";
  10. $query.="UNIQUE user_email(user_email, user_name)";


Zamieniłem user_password z
  1. VARCHAR(20) na CHAR
(nie wiem czy dobrze).


--------------------
Znudził Ci się wygląd twojej v39'ki ? Zmień to! :)

| Google | CodeGear | Swiss Delphi Center (ENG) | digitalmars.com | 4programmers.net | dsdt.info | BinBoy | delphi.cartall.com.pl | CPW.net.pl | cyfbar.republika.pl|
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: 21.08.2025 - 20:36