Avatar billede jalle Nybegynder
25. april 2001 - 00:28 Der er 22 kommentarer og
1 løsning

Probs med insert into

Jeg har fået et problem med at indsætte data med nedestående linie:

@mysql_query(\"INSERT INTO transfer (old_team, new_team, playerid, date) VALUES (\'$old_team\', \'$new_team\', \'$id\', \'$date\'\");

Min tabel transfer ser sådan ud:
id int(11) NOT NULL auto_increment
old_team int(20)
new_team int(20)
playerid int(11)
date int(20)
primary(id)
Det er kun id, som er sat til not null.

Når jeg printer dataene ud, så kommer der fx til at stå sådan;
old_team = 24
new_team = 23
id = 423
date = \"date(time())\"

Håber at er der er nogen der kan hjælpe, for jeg har stirret mig blind på problemet.
Avatar billede naesbygaard Nybegynder
25. april 2001 - 00:33 #1
må du godt sætte kun 4 recs. ind i en tabel der \"vil have\" 6 ?

/NbG
Avatar billede jalle Nybegynder
25. april 2001 - 00:36 #2
Der er kun 5 records.

Jeg kan godt ændre det til denne:

@mysql_query(\"INSERT INTO transfer (id, old_team, new_team, playerid, date) VALUES (\'\',\'$old_team\', \'$new_team\', \'$id\', \'$date\'\");

men ligemeget hjælper det.
Avatar billede erikjacobsen Ekspert
25. april 2001 - 00:38 #3
Jeg synes der mangler en parantes:

@mysql_query(\"INSERT INTO transfer (old_team, new_team, playerid, date) VALUES (\'$old_team\', \'$new_team\',\'$id\', \'$date\')\");
Avatar billede BacceDK Juniormester
25. april 2001 - 00:39 #4
Jamen når du sætter id til at være auto_increment skal du ikke selv sætte et id ind i din query så fjern venligst den men prøv sådan her
<?
$date = time();
mysql_query(\"INSERT INTO transfer (old_team, new_team, playerid, date)\" . \"VALUES (\'$old_team\', \'$new_team\', \'$date\'\");

indate

Avatar billede senj Nybegynder
25. april 2001 - 00:39 #5
Jeg er træt - men er date ikke et reserveret ord?
Avatar billede BacceDK Juniormester
25. april 2001 - 00:41 #6
ups
<?
$date = time();
mysql_query(\"INSERT INTO transfer (old_team, new_team, playerid, date)\" . \"VALUES (\'$old_team\', \'$new_team\', \'$date\'\")\")or die(mysql_error());
?>

indate
Avatar billede naesbygaard Nybegynder
25. april 2001 - 00:42 #7
-> senj.

Det er vist et ret godt bud :)
Avatar billede jalle Nybegynder
25. april 2001 - 00:42 #8
>> indate

Du kom desværre lidt for sent, for erikjacobsen kom først, så det er hans point.

Erik svarer du??
Avatar billede senj Nybegynder
25. april 2001 - 00:43 #9
naesbygaard>> Ikke godt nok :-)
Avatar billede BacceDK Juniormester
25. april 2001 - 00:44 #10
jalle tar det skam ik så tungt *S*
er her jo sådan set kun for at hjælpe og få hjælp når det kniber sååå point betyder intet *SS*
Avatar billede erikjacobsen Ekspert
25. april 2001 - 00:47 #11
date er et reserveret ord på listen, men det betyder tilsyneladende ikke noget
her. Og han ville heller ikke have kunnet oprette tabellen, hvis det var problemet.
Men en ret sjov reaktion på en manglende )
Avatar billede erikjacobsen Ekspert
25. april 2001 - 00:49 #12
Men døb nu date om til noget andet, bare for en sikkerheds skyld. Der står skrevet:

The following symbols (from the table above) are disallowed by ANSI SQL but allowed by MySQL as column/table names. This is because some of theese
names are very natural names so many people have already used them.

    ACTION
    BIT
    DATE
    ENUM
    NO
    TEXT
    TIME
    TIMESTAMP
Avatar billede senj Nybegynder
25. april 2001 - 00:49 #13
erik>> Ja det mente jeg også det var og det har før givet mig problemer. God ide er nok at udgå det fremover!
Avatar billede jalle Nybegynder
25. april 2001 - 00:50 #14
Takker for hjælpen.

Det er utroligt at man kan overse sådan en fejl. :)
Avatar billede senj Nybegynder
25. april 2001 - 00:52 #15
Som jeg læser det, så er datetime det reserverede ord og ikke date?????

http://www.mysql.com/doc/R/e/Reserved_words.html
Avatar billede senj Nybegynder
25. april 2001 - 00:53 #16
Overså at date også er det! Man burde gå i seng:-)
Avatar billede jalle Nybegynder
25. april 2001 - 00:55 #17
>> erik

jeg er godt klar over at date er et reserveret ord i mange databaser og scriptsprog, men når det virker og har p.t. brugt i mange tabeller, så jeg har p.t. ikke tænkt mig at lave det om, men skal tænke på det fremover, at det måske ikke er så smart at bruge reserveret ord. Har du et andet ord for dato på engelsk??? 
Avatar billede naesbygaard Nybegynder
25. april 2001 - 01:00 #18
Sådan er det altid med erikjacobsen. :)
Han har evnen til at se hvad folk gør forkert... hurtigt!!! Men det er jo heller ikke uden grund han ligger nummer et!
Det skal han sq have :)
Go\' nat

/NbG
Avatar billede BacceDK Juniormester
25. april 2001 - 01:37 #19
jalle behøvet det at stå på engelsk i din opsætning ?? jeg mener bar du kan jo bare skrive det lille stakkels ord på dansk nemlig \"dato\" det virker jo finno og sådan gør jeg det *SS*
indate
Avatar billede jalle Nybegynder
25. april 2001 - 01:42 #20
indate - nej det gør det ikke, men jeg er begyndt på at skrive alle mine datafelter på engelsk.
Avatar billede BacceDK Juniormester
25. april 2001 - 01:47 #21
hmm ja ja alt mit står også på engelsk meen lige netop det ord bruger jeg på dansk da der så ik kan ske komplikationer meen det er sel.f op til dig selv *SS*

indate
Avatar billede erikjacobsen Ekspert
25. april 2001 - 07:42 #22
Må jeg foreslå \"transferdate\" der netop siger, at det er datoen for den der
\"transfer\" (hvad det nu ellers er for noget), for ellers kunne det lige så godt
betyde datoen for registreringen i databasen, eller sidste gyldige dato, eller....

Altså kald en skovl en skovl, og en spade et graveredskab :)
Avatar billede htx98i17 Professor
25. april 2001 - 08:40 #23
\"by\" er også et reserveret ord...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester