Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z php
michalek1988
post 31.07.2003, 11:50:17
Post #1





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 30.07.2003

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


Pisząc skrypt natrafiłem na problem. Oto fragment kodu źródłowego w którym wystąpił błąd:
Cytat
//Tworzenie tabeli w bazie danych
$query="CREATE TABLE news (
       newsID INTEGER AUTO_INCREMENT PRIMARY_KEY,
       title VARCHAR (300),
       posted INTEGER,
       author VARCHAR (30),
       body MEDIUMTEXT)";

if (mysql_query($query))
{
echo "Utworzenie tabeli... <font color=green><b>OK<//b><//font>";
}
else {
echo "Utworzenie tabeli... <font color=red><b>Error<//b><//font>";
exit;
}


Nie wiem dlaczego nie tworzy się tabela. Zaznaczam, że wcześniej zaznaczyłem bazę poleceniem mysql_select_db() .
Go to the top of the page
+Quote Post
Jabol
post 31.07.2003, 11:51:57
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

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


1. BBCODE
2. dodaj kontrole błędów czyli mysql_error().
Go to the top of the page
+Quote Post
michalek1988
post 31.07.2003, 11:57:33
Post #3





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 30.07.2003

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


Wolałbym aby ktoś wyjaśnił mi jaki błąd jest w tym skrypcie. Aha i jeszcze jedno. Jak dodać tę kontrolę błędów i co ona mi daje.
Go to the top of the page
+Quote Post
kossa
post 31.07.2003, 12:00:17
Post #4





Grupa: Zarejestrowani
Postów: 1 165
Pomógł: 9
Dołączył: 9.04.2002
Skąd: Toruń

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


wybrales baze, a ustanowiles polaczenie z nia?
Go to the top of the page
+Quote Post
borec
post 31.07.2003, 12:01:20
Post #5





Grupa: Zarejestrowani
Postów: 260
Pomógł: 0
Dołączył: 18.07.2003
Skąd: Tarnów

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


myslq_error zwraca tresc bledu ktory wystapil podczas wykonywania zapytania

co do bledu to PRIMARY_KEY musi byc NO NULL


--------------------
Gentoo Linux 64bit / PHP 5.2 / MySQL 5.1
-> Administracja serwerami Linux i FreeBSD
Go to the top of the page
+Quote Post
Jabol
post 31.07.2003, 12:01:23
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

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


Kontrole błędów dodajesz, żeby wiedzieć co jest źle w skrypcie, a dodajesz to wywołaniem 'print mysql_error()' w dobrych miejscach.
Tak na moje to dajesz za duży varchar, zawsze myślałem, że musi być mniejszy 255.

a pk nie musi być not null, bo pk to jest już not null domyslnie.
Go to the top of the page
+Quote Post
borec
post 31.07.2003, 12:02:55
Post #7





Grupa: Zarejestrowani
Postów: 260
Pomógł: 0
Dołączył: 18.07.2003
Skąd: Tarnów

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


mozliwe tongue.gif


--------------------
Gentoo Linux 64bit / PHP 5.2 / MySQL 5.1
-> Administracja serwerami Linux i FreeBSD
Go to the top of the page
+Quote Post
michalek1988
post 31.07.2003, 12:05:48
Post #8





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 30.07.2003

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


Jabol ma rację popełniłem błąd przy VARCHAR. Zaraz zobacze czy teraz wszystko gra.
Go to the top of the page
+Quote Post
michalek1988
post 31.07.2003, 12:19:23
Post #9





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 30.07.2003

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


Dalej coś nie gra tyle, że teraz wiem trochę więcej. Taki kod wpisuję w sql:
Cytat
CREATE TABLE news (newsID INTEGER AUTO_INCREMENT PRIMARY_KEY, title VARCHAR (100), posted INTEGER, author VARCHAR (30), body MEDIUMTEXT);

Błędu w kodzie nie ma.
A taki wyświetla mi potem komunikat:
Cytat
Błąd

zapytanie SQL :  

CREATE TABLE news(

newsID INTEGERAUTO_INCREMENTPRIMARY_KEY,
title VARCHAR( 100 ) ,
posted INTEGER,
author VARCHAR( 30 ) ,
body MEDIUMTEXT
)  

MySQL zwrócił komunikat:  


Something is wrong in your syntax obok 'AUTO_INCREMENTPRIMARY_KEY, title VARCHAR( 100  ) , posted INTEGE' w linii 1
Powrót


Teraz mam pytanie: Dlaczego, skoro w sql wpisuje rozdzielnie integer auto.... to w błędzie zwraca mi to napisane razem?questionmark.gif?
Go to the top of the page
+Quote Post
borec
post 31.07.2003, 12:21:19
Post #10





Grupa: Zarejestrowani
Postów: 260
Pomógł: 0
Dołączył: 18.07.2003
Skąd: Tarnów

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


moze INT zamiast INTEGER


--------------------
Gentoo Linux 64bit / PHP 5.2 / MySQL 5.1
-> Administracja serwerami Linux i FreeBSD
Go to the top of the page
+Quote Post
michalek1988
post 31.07.2003, 12:23:01
Post #11





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 30.07.2003

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


Już mówiłem, że kod jest poprawny. Sprawdzałem w książce o php.
Go to the top of the page
+Quote Post
Jabol
post 31.07.2003, 12:25:59
Post #12





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

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


przenieś primary key do oddzielnej linijki i napisz primary i key oddzielnie, spróbuj tak:[sql:1:3c17f89c04]CREATE TABLE news(

newsID INT AUTO_INCREMENT, #można jeszcze spróbować NUMERIC(10)
title VARCHAR( 100 ) ,
posted INTEGER,
author VARCHAR( 30 ) ,
body MEDIUMTEXT,
PRIMARY KEY (newsID) #oddzielnie
) [/sql:1:3c17f89c04]
Go to the top of the page
+Quote Post
borec
post 31.07.2003, 12:26:24
Post #13





Grupa: Zarejestrowani
Postów: 260
Pomógł: 0
Dołączył: 18.07.2003
Skąd: Tarnów

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


wlasnie tongue.gif


--------------------
Gentoo Linux 64bit / PHP 5.2 / MySQL 5.1
-> Administracja serwerami Linux i FreeBSD
Go to the top of the page
+Quote Post
michalek1988
post 31.07.2003, 12:31:04
Post #14





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 30.07.2003

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


Dzięki, wszystko gra:). Tylko powiedz mi Jabol czy ten kod napisany przez ciebie jest taki sam jak ten poprzedni tylko inaczej napisany??
Go to the top of the page
+Quote Post
Jabol
post 31.07.2003, 12:33:29
Post #15





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

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


Cytat
Tylko powiedz mi Jabol czy ten kod napisany przez ciebie jest taki sam jak ten poprzedni tylko inaczej napisany??
dokładnie taki sam, tylko inaczej napisany, jak mówisz
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: 28.06.2025 - 09:43