|
| Fejl i MySQL-kørsel Fra : Anders Boholdt-Peter~ |
Dato : 04-01-07 14:55 |
|
Hej,
På adressen
http://www.hjemmesideskolen.dk/files/mysql.zip
kan man hente et færdigt script, der gør at man kan oprette flere brugere i
php med brug af MYSQL som database.
Når jeg forsøger at køre teksten via PHPMyAdmin der findes i filen mysql.txt
(der blot ligger i hovedmappen når man pakker filen ud), får jeg en
fejlmeddelelse.
I PHPMyAdmin har jeg valgt SQL, hvorefter jeg har indsat teksten fra filen.
Fejlen lyder således:
---
MySQL said:
#1067 - Invalid default value for 'id'
---
Jeg har ikke postet selve teksten der burde oprette tabellen her, den ligger
som sagt i filen mysql.txt.
Jeg har ikke haft afprøvet filen der burde oprette tabeller til
administrationsmodullet.
Nogle bud på hvad der kan være galt?
På forhånd tak for eventuelle svar.
--
/ Anders
http://www.boholdt-petersen.dk
| |
Erik Ginnerskov (04-01-2007)
| Kommentar Fra : Erik Ginnerskov |
Dato : 04-01-07 16:00 |
|
Anders Boholdt-Petersen wrote:
> Jeg har ikke postet selve teksten der burde oprette tabellen her, den
> ligger som sagt i filen mysql.txt.
Så må jeg vel hellere gøre det:
CREATE TABLE users (
id int(10) unsigned DEFAULT '0' NOT NULL auto_increment,
brugernavn varchar(16),
password varchar(16),
PRIMARY KEY (id)
)
> Jeg har ikke haft afprøvet filen der burde oprette tabeller til
> administrationsmodullet.
Den er såmænd identisk med ovenstående, bortset fra at tabellen og felterne
i den gives andre navne:
CREATE TABLE admin (
id int(10) unsigned DEFAULT '0' NOT NULL auto_increment,
bruger varchar(16),
kode varchar(16),
PRIMARY KEY (id)
)
Det er altså ændret i første, tredje og fjerde linje, men det er anden
linje, der gør knuder. Det skal så tilføjes, at det ikke er på alle
MySql-servere, at scriptet fejler.
--
Godt nytår
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk
| |
Martin (04-01-2007)
| Kommentar Fra : Martin |
Dato : 04-01-07 16:45 |
|
Erik Ginnerskov wrote:
> Det er altså ændret i første, tredje og fjerde linje, men det er anden
> linje, der gør knuder. Det skal så tilføjes, at det ikke er på alle
> MySql-servere, at scriptet fejler.
Grunden er at "password" er en funktion i mysql 5. Ligesom MD5()
Se < http://dev.mysql.com/doc/refman/5.0/en/encryption-functions.html>
password() funktionen findes ikke i 4.x versionen - så det er højst
sandsynligt derfor
| |
Erik Ginnerskov (04-01-2007)
| Kommentar Fra : Erik Ginnerskov |
Dato : 04-01-07 16:48 |
| | |
Erik Ginnerskov (04-01-2007)
| Kommentar Fra : Erik Ginnerskov |
Dato : 04-01-07 16:52 |
| | |
Martin (04-01-2007)
| Kommentar Fra : Martin |
Dato : 04-01-07 16:55 |
|
Erik Ginnerskov wrote:
> Martin wrote:
>
>
>>Grunden er at "password" er en funktion i mysql 5. Ligesom MD5()
>>Se < http://dev.mysql.com/doc/refman/5.0/en/encryption-functions.html>
>>password() funktionen findes ikke i 4.x versionen
>
>
> Desværre:
>
> CREATE TABLE users(
> id int( 10 ) unsigned DEFAULT '0' NOT NULL AUTO_INCREMENT ,
> brugernavn varchar( 16 ) ,
> kodeord varchar( 16 ) ,
> PRIMARY KEY ( id )
> )
>
> Samme fejl:
>
> #1067 - Invalid default value for 'id'
Man kan ikke sætte en default value på et auto increment felt :)
| |
Erik Ginnerskov (04-01-2007)
| Kommentar Fra : Erik Ginnerskov |
Dato : 04-01-07 17:02 |
|
Martin wrote:
> Man kan ikke sætte en default value på et auto increment felt
Det fungerer uden problemer på den server, hvor hjemmesideskolen.dk ligger.
Men har du så forslag til alternative måder at kode det på, måske sådan:
CREATE TABLE users (
id int(10) unsigned auto_increment,
brugernavn varchar(16),
password varchar(16),
PRIMARY KEY (id)
)
Ikke testet.
--
Godt nytår
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk
| |
Erik Ginnerskov (04-01-2007)
| Kommentar Fra : Erik Ginnerskov |
Dato : 04-01-07 17:07 |
| | |
Anders Boholdt-Peter~ (04-01-2007)
| Kommentar Fra : Anders Boholdt-Peter~ |
Dato : 04-01-07 18:55 |
|
"Erik Ginnerskov" <erik@donotspammeplease.invalid> skrev i en meddelelse
news:459d2622$0$49198$14726298@news.sunsite.dk...
> Det fungerede på unoeuro.com, hvor det andet fejlede.
Også på min lokale Uniformserver virker det fint nu!
Skal man rette i nogle af de andre filer, bortset fra mysql.txt?
Tusind tak for hurtig hjælp!!!
--
/ Anders
http://www.boholdt-petersen.dk
| |
Erik Ginnerskov (04-01-2007)
| Kommentar Fra : Erik Ginnerskov |
Dato : 04-01-07 23:50 |
|
Anders Boholdt-Petersen wrote:
> Også på min lokale Uniformserver virker det fint nu!
Så er alt godt.
> Skal man rette i nogle af de andre filer, bortset fra mysql.txt?
Nej, når tabellen er oprettet, fungerer alt andet som ellers.
> Tusind tak for hurtig hjælp!!!
Vel bekomme.
--
Godt nytår
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk
| |
Stig Johansen (05-01-2007)
| Kommentar Fra : Stig Johansen |
Dato : 05-01-07 07:13 |
|
Erik Ginnerskov wrote:
>
> CREATE TABLE admin (
> id int(10) unsigned DEFAULT '0' NOT NULL auto_increment,
> bruger varchar(16),
> kode varchar(16),
> PRIMARY KEY (id)
> )
>
> Det er altså ændret i første, tredje og fjerde linje, men det er anden
> linje, der gør knuder. Det skal så tilføjes, at det ikke er på alle
> MySql-servere, at scriptet fejler.
Nu ved jeg ikke med mySql, men int er et tal og '0' er tekst.
--
Med venlig hilsen
Stig Johansen
| |
Erik Ginnerskov (05-01-2007)
| Kommentar Fra : Erik Ginnerskov |
Dato : 05-01-07 22:32 |
| | |
Arne Feldborg (05-01-2007)
| Kommentar Fra : Arne Feldborg |
Dato : 05-01-07 23:10 |
|
"Erik Ginnerskov" <erik@donotspammeplease.invalid> skrev Fri, 5 Jan 2007
22:32:29 +0100
>> Nu ved jeg ikke med mySql, men int er et tal og '0' er tekst.
>
>Int er heltal (ingen decimaler). Nul er også et heltal, så ...
>
Jeg tror Stig tænker på anførselstegnene.
--
mvh, A:\Feldborg
Slægtsforskning og lokalhistorie i midt- vestjylland
http://hammerum-herred.dk/
| |
Erik Ginnerskov (06-01-2007)
| Kommentar Fra : Erik Ginnerskov |
Dato : 06-01-07 00:54 |
| | |
Erik Ginnerskov (06-01-2007)
| Kommentar Fra : Erik Ginnerskov |
Dato : 06-01-07 01:01 |
|
Erik Ginnerskov wrote:
> Det skal da
> prøves, om det kan køre alene ved at fjerne de anførselstegn.
Det kunne ikke la'sig gi'sig.
CREATE TABLE users (
id int(10) unsigned DEFAULT 0 NOT NULL auto_increment,
brugernavn varchar(16),
password varchar(16),
PRIMARY KEY (id)
)
dur ikke. Samme fejl som med '0'.
Dette dur derimod:
CREATE TABLE users (
id int(10) unsigned auto_increment,
brugernavn varchar(16),
password varchar(16),
PRIMARY KEY (id)
)
--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk
| |
Peter Brodersen (06-01-2007)
| Kommentar Fra : Peter Brodersen |
Dato : 06-01-07 22:29 |
|
On Thu, 4 Jan 2007 16:00:08 +0100, "Erik Ginnerskov"
<erik@donotspammeplease.invalid> wrote:
> id int(10) unsigned DEFAULT '0' NOT NULL auto_increment,
Sæt den som nøgle, fx primærnøgle. Hvis du fjerner DEFAULT '0' er
fejlmeddelelsen mere tydelig:
ERROR 1075 (42000): Incorrect table definition; there can be only one
auto column and it must be defined as a key
Så prøv med:
id int(10) unsigned NOT NULL auto_increment primary key
--
- Peter Brodersen
Kendt fra Internet
| |
Erik Ginnerskov (07-01-2007)
| Kommentar Fra : Erik Ginnerskov |
Dato : 07-01-07 01:20 |
| | |
Erik Ginnerskov (07-01-2007)
| Kommentar Fra : Erik Ginnerskov |
Dato : 07-01-07 23:44 |
|
Peter Brodersen wrote:
> Så prøv med:
>
> id int(10) unsigned NOT NULL auto_increment primary key
Det giver følgende fejlmelding:
#1068 - Multiple primary key defined
Samme fejl alle de tre steder, jeg har mulighed for at teste:
azero.dk
unoeuro.com
lokalt på XAMPP
Det gør ikke nogen synlig forskel, om man medtager "NOT NULL", men "primary
key" dur ikke.
--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk
| |
Michael Rasmussen (06-01-2007)
| Kommentar Fra : Michael Rasmussen |
Dato : 06-01-07 01:19 |
|
| |
|
|