Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Skrypt nie tworzy mi tabel
Forum PHP.pl > Forum > Przedszkole
Raven1122
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?
tomsol
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
Raven1122
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
tomsol
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 ;]

Raven1122
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
Niktoś
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.
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.