Avatar billede ducks Nybegynder
18. januar 2004 - 18:11 Der er 9 kommentarer og
1 løsning

MySQL og ASP

Nu har jeg altid været vandt til at bruge Access databaser sammen med ASP, men vil egentlig hellere bruge MySQL da det skulle køre bedre og kunne klare flere online brugere på een gang. Jeg kan bare ikke helt finde ud af, hvordan man får det til at arbejde sammen, jeg troede egentlig bare det når man connecter, at koden var forskellig, men det er vidst ikke helt så simpelt?

Jeg er foreløbig gået i stå ved:

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.open "Driver={mySQL};Server=localhost;Option=16834;Database=test;"

Hvor jeg får fejlen:

Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
/test.asp, line 3


Og såvidt jeg har forstået er det heller ikke helt de samme syntaxer når man kommunikerer med databasen? Hvordan skal de se ud?
Avatar billede keysersoze Ekspert
18. januar 2004 - 18:15 #1
Allerførst skal du sørge for at MyODBC er installeret - og hvis den er det skal du højst sandsynligt benytte nedenstående Driver-tekst

Conn.open "Driver={MySQL ODBC 3.51 Driver};Server=localhost;Option=16834;Database=test;"

Rent SQL-mæssigt er der ikke de store forskelle - fx er datoer er lidt anderledes og man skal benytte LIMIT i stedet for SELECT TOP... men det er lettest at tage hen ad vejen som du støder ind i problemer
Avatar billede truelz Nybegynder
18. januar 2004 - 18:17 #2
Conn.Open = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;DATABASE=db;UID=bruger;PWD=shhh;OPTION=3"

Hvis det er din egen server, skal du udover at installere MySQL, installere en ODBC connecter, den kan findes inde på mysql.com
Avatar billede ducks Nybegynder
18. januar 2004 - 18:46 #3
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.open "Driver={MySQL ODBC 3.51 Driver};Server=localhost;Option=16834;Database=database;"

Conn.Execute("Insert Into table(field) value('value')")
%>

Gir fejlen:

Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[MySQL][ODBC 3.51 Driver][mysqld-4.0.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 'table(field) values('test')' at line 1
/test.asp, line 5
Avatar billede truelz Nybegynder
18. januar 2004 - 18:51 #4
Conn.Execute("Insert Into table (field) value('value')")
Der skal være et mellemrum efter table... Tror jeg...
Avatar billede erikjacobsen Ekspert
18. januar 2004 - 19:00 #5
table er et reserveret ord. Hedder den faktisk table kan du skrive

Conn.Execute("Insert Into `table`(field) value('value')")

men mon ikke din tabel - hvis du da har en - hedder noget andet?
Avatar billede ducks Nybegynder
18. januar 2004 - 19:07 #6
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.open "Driver={MySQL ODBC 3.51 Driver};Server=localhost;Option=16834;Database=database;"

Conn.Execute("Insert Into tabel (FieldName) value('streng')")
%>

Får fejlen:

Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[MySQL][ODBC 3.51 Driver][mysqld-4.0.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 'value('streng')' at line 1
/test.asp, line 5

Og min database hedder bare "database" tablen hedder "tabel" kolonnen hedder "FieldName" for at det var nemmere at overskue, her mens jeg prøver at få det til at virke.
Avatar billede erikjacobsen Ekspert
18. januar 2004 - 19:09 #7
selv i Access hedder det VALUES
Avatar billede ducks Nybegynder
18. januar 2004 - 20:09 #8
Min fejl :(

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.open "Driver={MySQL ODBC 3.51 Driver};Server=localhost;Option=16834;Database=database;"

Conn.Execute("Insert Into tabel (FieldName) values ('streng')")

RS = Conn.Execute("Select * From tabel")

Response.Write(RS("FieldName"))
%>

Giver 0 ? - Nu har jeg sikkert overset et eller andet igen.
Avatar billede erikjacobsen Ekspert
18. januar 2004 - 23:30 #9
Det er et fornuftigt resultat hvis FieldName er en Int af en slags
(beklager svartiden, men jeg får ingen mails)
Avatar billede ducks Nybegynder
19. januar 2004 - 00:38 #10
Det var Tintiny (hvad det så er) med en længde på 3, det var nok derfor :)
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