Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Skrypt nie tworzy mi tabel
Raven1122
post 9.04.2012, 14:01:16
Post #1





Grupa: Zarejestrowani
Postów: 369
Pomógł: 2
Dołączył: 1.11.2010

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


Witam, mam taki kod:

  1. <?php
  2. connect();
  3. $sql = "CREATE TABLE `" . $prefix . "settings`(
  4. `title` varchar(500) NOT NULL,
  5. `keywords` LONGTEXT NOT NULL,
  6. `description` LONGTEXT NOT NULL,
  7. `newsperpage` int(11) NOT NULL,
  8. `newstitlecolor` varchar(255) NOT NULL,
  9. `newscontentcolor` varchar(255) NOT NULL,
  10. `newsseparator` varchar(255) NOT NULL,
  11. )";
  12. $query = mysql_query($sql) or die(mysql_error());
  13. echo("Dodawanie tabeli " . $prefix . "settings .....Wykonano");
  14.  
  15. $sql = "CREATE TABLE `" . $prefix . "news`(
  16. `id` int(11) NOT NULL auto_increment,
  17. `title` varchar(1000) NOT NULL,
  18. `info` varchar(500) NOT NULL,
  19. `content` LONGTEXT NOT NULL,
  20. PRIMARY KEY(id))";
  21. $query = mysql_query($sql) or die(mysql_error());
  22. echo("Dodawanie tabeli " . $prefix . "news .....Wykonano");
  23.  
  24.  
  25. $sql = "CREATE TABLE `" . $prefix . "menubar`(
  26. `position` int(3) NOT NULL,
  27. `title` varchar(500) NOT NULL,
  28. `link` varchar(1000) NOT NULL,
  29. )";
  30. $query = mysql_query($sql) or die(mysql_error());
  31. echo("Dodawanie tabeli " . $prefix . "menubar .....Wykonano");
  32.  
  33.  
  34. $sql = "CREATE TABLE `" . $prefix . "views`(
  35. `views` int(11) NOT NULL
  36. )";
  37. $query = mysql_query($sql) or die(mysql_error());
  38. echo("Dodawanie tabeli " . $prefix . "views .....Wykonano");
  39.  
  40. $sql = "CREATE TABLE `" . $prefix . "users`(
  41. `id` int(11) NOT NULL auto_increment,
  42. `login' varchar(255) NOT NULL,
  43. `password` varchar(1000) NOT NULL,
  44. `email` varchar(500) NOT NULL,
  45. `joindate` DATETIME NOT NULL,
  46. `lastlogin` DATETIME NOT NULL,
  47. `lastactivity` DATETIME NOT NULL,
  48. `activated` int(1) NOT NULL,
  49. `activationkey` varchar(255) NOT NULL,
  50. `rights` int(2) NOT NULL,
  51. PRIMARY KEY(id))";
  52. $query = mysql_query($sql) or die(mysql_error());
  53. echo("Dodawanie tabeli " . $prefix . "users .....Wykonano");
  54. ?>


i nie tworzy mi on tabel,
Funkcja connect to :

  1. <?php
  2. require_once("../config.php");
  3.  
  4. function connect(){
  5. $link = @mysql_connect ($host, $user, $password);
  6. @mysql_select_db($name);
  7. @mysql_query('SET NAMES \'utf8\'');
  8. @mysql_query("SET NAMES utf8");
  9. @mysql_query("SET CHARACTER SET utf8");
  10. @mysql_query("SET collation_connection = utf8_polish_ci");
  11. }
  12. ?>



no i plik config:

  1. <?php
  2. $host = "localhost";
  3. $user = "xxx";
  4. $name = "xxx";
  5. $password = "xxx";
  6. $prefix = "tabela_";
  7. ?>


polaczenie na pewno jest nawiazane, wyskakuja mi komunikatu o wykonaniu, a ponad to nie dodaje tabeli, dlaczego?

Ten post edytował Raven1122 9.04.2012, 14:12:17
Go to the top of the page
+Quote Post
tomsol
post 9.04.2012, 15:04:56
Post #2





Grupa: Zarejestrowani
Postów: 36
Pomógł: 1
Dołączył: 15.01.2012

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


na moje oko ze zmienną prefix mozesz miec problem, ustaw ją może jako zmienna global ?

Daj sobie var_dump($sql); break; i przepisz to do phpmyadmin i zobacz jakie Ci bledy wywala

Ten post edytował tomsol 9.04.2012, 15:06:21
Go to the top of the page
+Quote Post
Raven1122
post 9.04.2012, 17:42:37
Post #3





Grupa: Zarejestrowani
Postów: 369
Pomógł: 2
Dołączył: 1.11.2010

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


var dump wyplul:
  1. string 'CREATE TABLE `guestbook_settings`(
  2.  
  3. `title` varchar(500) NOT NULL,
  4.  
  5. `keywords` LONGTEXT NOT NULL,
  6.  
  7. `description` LONGTEXT NOT NULL,
  8.  
  9. `newsperpage` int(11) NOT NULL,
  10.  
  11. `newstitlecolor` varchar(255) NOT NULL,
  12.  
  13. `newscontentcolor` varchar(255) NOT NULL,
  14.  
  15. `newsseparator` varchar(255) NOT NULL,
  16.  
  17. )' (length=291)


wiec ze zmienna prefix wszystko ok


prefix to guestbook poniewaz mam instalator skryptu i w configu sie zapisuje to co wpisze w pola

no i blad z phpmyadmin
#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 17

Ten post edytował Raven1122 9.04.2012, 18:02:57
Go to the top of the page
+Quote Post
tomsol
post 9.04.2012, 18:06:14
Post #4





Grupa: Zarejestrowani
Postów: 36
Pomógł: 1
Dołączył: 15.01.2012

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


no i masz błąd na moje oko...

przy przed ostatniej linii przecinek po not null - nie utworzy Ci tabeli wink.gif

`rights` int(2) NOT NULL,

zawsze kończysz przecinkiem wywal wszedzie na koncu ten przecinek i bedzie ok ;]



Ten post edytował tomsol 9.04.2012, 18:07:20
Go to the top of the page
+Quote Post
Raven1122
post 9.04.2012, 18:42:42
Post #5





Grupa: Zarejestrowani
Postów: 369
Pomógł: 2
Dołączył: 1.11.2010

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


ale po rights jest primary key:

`rights` int(2) NOT NULL,
PRIMARY KEY(id))";

co ciekawe do wszystkich dalem var dump skopiowalem i wstawialem po kolei do php my admin, i wszystkie powchodzily, czyli blad nie moze byc w create table

Ten post edytował Raven1122 9.04.2012, 18:10:14
Go to the top of the page
+Quote Post
Niktoś
post 9.04.2012, 18:55:43
Post #6





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

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


Spróbuj tak:

  1. $sql = "CREATE TABLE `" . $prefix . "news`(
  2. `id` int(11) NOT NULL PRIMARY KEY auto_increment,
  3. `title` varchar(1000) NOT NULL,
  4. `info` varchar(500) NOT NULL,
  5. `content` LONGTEXT NOT NULL
  6. )";

Dajesz o jeden przecinek za dużo ,robisz tak:
  1. $sql = "CREATE TABLE `" . $prefix . "settings`(
  2. `title` varchar(500) NOT NULL,
  3. `keywords` LONGTEXT NOT NULL,
  4. `description` LONGTEXT NOT NULL,
  5. `newsperpage` int(11) NOT NULL,
  6. `newstitlecolor` varchar(255) NOT NULL,
  7. `newscontentcolor` varchar(255) NOT NULL,
  8. `newsseparator` varchar(255) NOT NULL,
  9. )";

W rezultacie tego zapytanie w bazie danych oczekuje kolejnej kolumny ,której nie ma i dlatego dostajesz błąd.
Ma być:
  1. $sql = "CREATE TABLE `" . $prefix . "settings`(
  2. `title` varchar(500) NOT NULL,
  3. `keywords` LONGTEXT NOT NULL,
  4. `description` LONGTEXT NOT NULL,
  5. `newsperpage` int(11) NOT NULL,
  6. `newstitlecolor` varchar(255) NOT NULL,
  7. `newscontentcolor` varchar(255) NOT NULL,
  8. `newsseparator` varchar(255) NOT NULL
  9. )";

Popraw wszystkie tabele które tworzysz.

Ten post edytował Niktoś 9.04.2012, 20:05:49
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: 6.07.2025 - 10:07