Tworzenie bazy/tabeli

0

Mam dwa pliki . Jeden łączący z bazą danych a drugi służący do stworzenia tabeli. Całość stoi na serwerze vertrigo

Pili łączący z bazą danych.

 <?php # Łączenie z bazą danych - mysqli_connect.php
DEFINE ('DB_USER','root');
DEFINE ('DB_PASSWORD','hack666');
DEFINE ('DB_HOST','localhost');
DEFINE ('DB_NAME','test');
$dbc = @mysqli_connect (DB_HOST, DB_USER , DB_PASSWORD, DB_NAME) OR die ('Brak połączenia z MySQL: ' . mysqli_connect_error() );
?> 

Plik tworzący tabele w bazie.

<?php require_once('./mysqli_connect.php'); 

CREATE TABLE users  (
user_id MEDIUMINT UNSIGNED NOT NULL AUTO INCREMENT,
first_name VARCHAR(20) NOT NULL,
last_name VARCHAR(40) NOT NULL,
email VARCHAR(60) NOT NULL,
pass CHAR(40) NOT NULL,
registration_date DATETIME NOT NULL,
PRIMARY KEY (user_id)
);

?>  

Zamiast utworzyć tabelę wyskakuje mi taki błąd:

Parse error: syntax error, unexpected T_STRING in C:\Users\Adam\Desktop\cmstest\install_mysql.php on line 3

Zaś w konsoli SQL gdy wklejam sam kod służący tworzeniu tabel (PhpMyAdmin) wyskakuje coś takiego:

Błąd

zapytanie SQL:

CREATE TABLE users(
user_id MEDIUMINT UNSIGNED NOT NULL AUTO INCREMENT,
first_name VARCHAR( 20 ) NOT NULL ,
last_name VARCHAR( 40 ) NOT NULL ,
email VARCHAR( 60 ) NOT NULL ,
passCHAR( 40 ) NOT NULL ,
registration_date DATETIME NOT NULL ,
PRIMARY KEY ( user_id )
)

MySQL zwrócił komunikat: Dokumentacja
#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 'AUTO INCREMENT,
first_name VARCHAR(20) NOT NULL,
last_name VARCHAR(40) NOT NUL' at line 2  

Nie wiem co robić :(. Znam się na html/css/java itp. php też nawet,nawet :). Jedyne co mi się nie udało to połączenie z bazą.

0

Poprawiłem kod z SQL. Miałem błąd :)

 CREATE TABLE users (
user_id MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT,
first_name VARCHAR(20) NOT NULL,
last_name VARCHAR(40) NOT NULL,
email VARCHAR(60) NOT NULL,
pass CHAR(40) NOT NULL,
registration_date DATETIME NOT NULL,
PRIMARY KEY (user_id)
);

Ale w samym php dalej nie działa ...

1

To dobrze, że nie działa. W końcu PHP i SQL to dwa różne języki. Wstawiłeś kod SQL do pliku PHP, a interpreter nic nie wie o SQLu.
Więc jak się korzysta z SQLa? Otwiera się połączenie z bazą i wysyła się do SZBD (system zarządzania bazą danych) polecenia SQL jako napisy (lub inaczej).
Widać, że chcesz korzystać z mysqli w PHP, więc możesz użyć metody query:

$dbc->query("CREATE TABLE ...");

lub jeszcze lepiej skorzystać z prepare statements.
Polecam lekturę:
http://pl2.php.net/manual/pl/book.mysqli.php

0

Skorzystałem z query przy tworzeniu tabeli w bazie test. Wszystko z dokumentacji http://pl2.php.net/manual/pl/mysqli.query.php
I nie działa :(. Wypełniłem dane w stałej link ale po wejściu w phpmyadmin nic się nie dzieje. Do tego sam skrypt generuje puste tło co zapewne oznacza że udało się wykonać tylko pierwszą część skryptu dotyczącą łączenia.

1 użytkowników online, w tym zalogowanych: 0, gości: 1