Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Rejestracja i błąd przy tworzeniu bazy
Forum PHP.pl > Forum > Bazy danych > MySQL
jpowie01
Hej !
Jestem nowy, przed chwilą się zarejestrowałem winksmiley.jpg Na początku witam wszystkich i od razu mówię, że nie jestem jakimś wielkim znawcą PHP, ani MySQL.
Otóż, zacząłem pisać portal społecznościowy i rozpocząłem prace od rejestracji, już na starcie mam przeszkody. Chcę, aby każdy użytkownik miał 4 tabele - optymalizacja - tak, aby strona ładowała się w miarę szybko. Napisałem następujący kod :

  1. ...
  2.  
  3. $konto = mysql_real_escape_string (trim($_POST['konto']));
  4. $comments = "$konto"."_comments";
  5. $friends = "$konto"."_friends";
  6. $invite = "$konto"."_invite";
  7.  
  8. $zapytanie1 = 'CREATE TABLE '.$konto.' (id int(11) AUTO_INCREMENT, text char(250), data DATETIME, IP, PRIMARY KEY(id))';
  9. $zapytanie2 = 'CREATE TABLE '.$comments.' (id int(11) AUTO_INCREMENT, login, text char(250), data DATETIME, IP, PRIMARY KEY(id))';
  10. $zapytanie3 = 'CREATE TABLE '.$friends.' (id int(11) AUTO_INCREMENT, login, IP, PRIMARY KEY(id))';
  11. $zapytanie4 = 'CREATE TABLE '.$invite.' (id int(11) AUTO_INCREMENT, login, data DATETIME, IP, type, PRIMARY KEY(id))';
  12.  
  13. mysql_query($zapytanie1) or die(mysql_error());
  14. mysql_query($zapytanie2) or die(mysql_error());
  15. mysql_query($zapytanie3) or die(mysql_error());
  16. mysql_query($zapytanie4) or die(mysql_error());
  17.  
  18. ...


Po próbie rejestracji kod buntuje się i pokazuje się błąd :

Kod
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 ' PRIMARY KEY(id))' at line 1


Nie wiem co robię źle ;/ Już próbuję chyba godzinę. Stawiam przecinki, średniki, nawiasy, apostrofy, wszystko co jest możliwe i to nawet w dziwnych miejscach. Ni w ząb nie idzie. Może coś robię nie tak, a może serwer mi narzuca swoje poglądy ?

Pozdrawiam,
jpowie01
nospor
http://dev.mysql.com/doc/refman/5.1/en/create-table.html
Tu masz napisane jak wyglada skladnia do tworzenia tabeli. Zastosuj sie do tej skladni to ci sie nic nie bedzie buntowac smile.gif
jpowie01
Próbowałem i tego. Zastosowałem się do dwóch pierwszych składni, bo trzeciej coś nie mogłem zrozumieć, no ale mniejsza o to winksmiley.jpg
Próbowałem, próbowałem i jeszcze raz próbowałem i nic.
Całą rejestrację wzoruję na tym tutku : http://www.eioba.pl/a85841/rejestracja_i_logowania_php_mysql .
Tak więc wróciłem do korzeni i zauważyłem taką składnie :
  1. $sql1="create table if not exists user(
  2.  
  3. id int(11) NOT NULL auto_increment,
  4.  
  5. login varchar(50) NOT NULL,
  6.  
  7. password varchar (40) NOT NULL,
  8.  
  9.  
  10.  
  11. PRIMARY KEY (id))";
  12.  

Spróbowałem i działa. Tak więc podstawiłem swoje pola, wartości, typy itd.
  1. $zapytanie1="create table if not exists $konto(
  2. id int(11) NOT NULL auto_increment,
  3. text char(250) NOT NULL,
  4. data DATETIME,
  5. PRIMARY KEY (id))";
  6. $zapytanie2="create table if not exists $comments(
  7. id int(11) NOT NULL auto_increment,
  8. login char(50) NOT NULL,
  9. text char (250) NOT NULL,
  10. data DATETIME,
  11. IP,
  12. PRIMARY KEY (id))";
  13. $zapytanie3="create table if not exists $friends(
  14. id int(11) NOT NULL auto_increment,
  15. login char(50) NOT NULL,
  16. IP,
  17. PRIMARY KEY (id))";
  18. $zapytanie4="create table if not exists $invite(
  19. id int(11) NOT NULL auto_increment,
  20. login varchar(50) NOT NULL,
  21. data DATETIME,
  22. IP,
  23. type,
  24. PRIMARY KEY (id))";

I.. nie działa ;/ Nie rozumiem już tego całkowicie.
Wywala error :
Cytat
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 ' PRIMARY KEY (id))' at line 6

Szczerze mówiąc pogubiłem się. Coś jest nie tak z PRIMARY KEY. Jak je zdefiniować, tak aby było poprawnie ? MySQL jest w tej samej wersji 5.1.47.
nospor
Znowu nie okresliles pol
IP,
type,

Sama nazwa nie wystarczy. No poto dostales link, bys zobaczyl ze musisz podac typ pola i takie tam.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.