Avatar billede madeindk Nybegynder
24. februar 2006 - 15:03 Der er 21 kommentarer og
1 løsning

MySQL - vil ikke oprette ny record

Hej eksperter!

Nogen der kan se hvorfor denne her streng ikke virker?

SQL = "INSERT guestbook INTO userId = ' & userId & ' AND message = & message & AND afsender_Id = afsenderId & AND date = & DanskDato(Now) & AND dateAndTime = & DanskDatoTid(Now) "
       
objConn.Execute(SQL)

Den siger sådan her:

[MySQL][ODBC 3.51 Driver][mysqld-4.1.16-nt]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 'INTO userId = ' & userId & ' AND message = & message & AND afsender_Id = afsende' at line 1
Avatar billede michael_stim Ekspert
24. februar 2006 - 15:06 #1
date er reserveret `date`
Avatar billede madeindk Nybegynder
24. februar 2006 - 15:07 #2
Reserveret? Hvad betyder det?
Avatar billede michael_stim Ekspert
24. februar 2006 - 15:07 #3
INSERT INTO guestbook
Avatar billede michael_stim Ekspert
24. februar 2006 - 15:08 #4
Det betyder at ordet ikke må bruges til dine tabelnavne eller databasenavne, mm du sätter specialtegn rundt om
Avatar billede softspot Forsker
24. februar 2006 - 15:09 #5
Syntaksen for insert er vel

SQL = "INSERT INTO guestbook (userId, message, afsender_Id, date, dateAndTime) " & _
"VALUES('" & userId & "','" & message & "'," & afsenderId & ",'" & DanskDato(Now) & "','" & DanskDatoTid(Now) & "*)"
Avatar billede madeindk Nybegynder
24. februar 2006 - 15:09 #6
Forstår ikke hvad du mener - har du en løsning?
Avatar billede softspot Forsker
24. februar 2006 - 15:09 #7
WOW! Der skete noget hurtigt her :D

Rettelse til mit eget indlæg:

SQL = "INSERT INTO guestbook (userId, message, afsender_Id, date, dateAndTime) " & _
"VALUES('" & userId & "','" & message & "'," & afsenderId & ",'" & DanskDato(Now) & "','" & DanskDatoTid(Now) & "')"
Avatar billede michael_stim Ekspert
24. februar 2006 - 15:10 #8
MySQL köber den syntax du bruger der, men det er også den eneste database. Vän dig til at bruge den rigtige syntax:
INSERT INTO tabelnavn (felt1, felt2,...) VALUES(value1, value2,...)
Avatar billede madeindk Nybegynder
24. februar 2006 - 15:14 #9
Softspot -> Det kom til at virke sådan her...

SQL = "INSERT INTO guestbook (userId, message, afsender_Id, date, dateAndTime) " & "VALUES('" & userId & "','" & message & "'," & afsenderId & ",'" & DanskDato(Now) & "','" & DanskDatoTid(Now) & "')"
objConn.Execute(SQL)

Du havde skrevet...

SQL = "INSERT INTO guestbook (userId, message, afsender_Id, date, dateAndTime) " & _
"VALUES('" & userId & "','" & message & "'," & afsenderId & ",'" & DanskDato(Now) & "','" & DanskDatoTid(Now) & "')"

Fjerne _ fra koden.
Smider du et svar? :-)
Avatar billede michael_stim Ekspert
24. februar 2006 - 15:15 #10
Visse ord er reserverede af de forskellige databaser fordi de bruger dem til forespörgelser (insert, like, date osv). Hvis du så bruger dem til dine tabelnavne kan databasen ikke vide hvad der er navne og hvad den skal bruge for at få din data frem.
Avatar billede madeindk Nybegynder
24. februar 2006 - 15:17 #11
Ok tak.
Så ved jeg det til en anden gang - sådan er det bare ikke med Access - jeg er lige gået over til MySQL
Avatar billede softspot Forsker
24. februar 2006 - 15:18 #12
Ja, det kommer her :)

& _ bruges i VBS som linecontinuation, altså fortsættelse af et statement på næste linie. Hvis du fjerner _ fra koden kan du også fjerne " & " mellem ) og VALUES (med husk at efterlade et mellemrum :)). Altså:

SQL = "INSERT INTO guestbook (userId, message, afsender_Id, date, dateAndTime) VALUES('" & userId & "','" & message & "'," & afsenderId & ",'" & DanskDato(Now) & "','" & DanskDatoTid(Now) & "')"
Avatar billede madeindk Nybegynder
24. februar 2006 - 15:18 #13
Lige en sidste ting - burde denne her ikke fungere?

SQL = "DELETE * FROM guestbook WHERE id=" & request.querystring("id")
set RS = objConn.Execute(SQL)
Avatar billede madeindk Nybegynder
24. februar 2006 - 15:19 #14
Har selv fixet den anden ting.
Avatar billede michael_stim Ekspert
24. februar 2006 - 15:20 #15
Jo sådan er det også med access ;o)
Avatar billede softspot Forsker
24. februar 2006 - 15:20 #16
Selv i Access er der reserverede ord, der kan man dog omstille kolonnenavnet med [] og dermed få lov til at bruge dem. Det er dog traditionelt ikke "god tone" at bruge reserverede ord som kolonnenavne, men det er vel en smagssag.
Avatar billede madeindk Nybegynder
24. februar 2006 - 15:20 #17
Ikke når jeg har leget med det :-)
Man kan sagtens skrive...

rs("date") = date
rs.update
Avatar billede michael_stim Ekspert
24. februar 2006 - 15:20 #18
Avatar billede madeindk Nybegynder
24. februar 2006 - 15:21 #19
Hvis man naturligvis har defineret date længere oppe i koden...
Avatar billede softspot Forsker
24. februar 2006 - 15:21 #20
Tak for point (på denne tråd der har sniffet speed) :)
Avatar billede madeindk Nybegynder
24. februar 2006 - 15:21 #21
Tak for linket Michael - det skal jeg nok for brug for :-)
Avatar billede softspot Forsker
24. februar 2006 - 15:22 #22
24/02-2006 15:20:42 > Ja, det er også kun når du bruger SQL som du vi lige har flikket sammen til at forespørge, at det er et problem. Den notation du bruger der er fordi objektet håndterer det for dig.
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
Kurser inden for grundlæggende programmering

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