webForumDet fria alternativet

Ny med ASP! Enkla frågor antar jag..

ASP

109 svar · 2 560 visningar · startad av tranceformer · sida 3 av 6

Frågan, av tranceformer

Jag har börjat med lite ASP och håller på att göra en butik, en väldigt enkel sådan till att börja med! Det jag ska göra är att ta informationen från textrutorna(enbart textrutor) i formen, och lägga in den i en databas. Till att börja med undrar jag ifall alla sidor ska sluta med .asp ifall man bara behöver ASP-kod på butiken. Jag har använt mig av[Haneng.com](http://www.haneng.com/lessons13.a

Läs frågan i sin helhet →
Medlem sedan mars 20033 686 inlägg
#41

Detta hittade jag när jag sökte lite. En koppling mot en MySQL-databas.

<%
Dim objConn
Dim objRS
Set objRS = Server.CreateObject("ADODB.Recordset")
Set objConn = Server.CreateObject("ADODB.Connection")

objConn.ConnectionString=" DRIVER={MySQL};SERVER=localhost;DATABASE=[DOMAIN_COM];UID=[DOMAIN_COM];PWD=[PASSWORD];"
objConn.Open

objRS.Open "[QUERY]", objConn, 3,3
%>
Medlem sedan juni 2004128 inlägg
#42

Ska testa! Tack!
Men när någon nu har skickat uppgifter till databasen, så att det lagts i tabellen, måste jag då göra en ny tabell genom någon kod, som nästa kunds uppgifter hamnar i eller hur funkar det?
Jag har följt det här hittills, på ett ungefär...

magnusfernstrom skrev:

Ja, mycket riktigt måste du ha en tabell i databasen som lagrar informationen. Ett exempel kan se ut ungefär såhär:

Databasen:

tabell --->       INFORMATION

kolumner ---> dbNamn      dbEmail

Fullständig kod:

<%
   Set con = Server.CreateObject("ADODB.Connection")
   con.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("databas.mdb")
   SQL = "INSERT INTO (dbNamn,dbEmail) VALUES (' " & Request.Form("namn") & "'. '" & Request.Form("email") & "'"
   Set rs = db.Execute(SQL)

   rs.Close
   Set rs = nothing
   db.Close
   Set db = nothing

   Response.Redirect "start.asp"
%>

Om jag ska byta ut koden som jag citerat här mot den du skrev nu, var ska SQL-koden då?

Medlem sedan mars 20033 686 inlägg
#43

Nej, nej. Det lagras i samma tabell, fast olika poster.

Ungefär såhär:

[b]dbNamn[/b]            [b]dbEmail[/b]
Magnus            magnusfernstrom88@hotmail.com
tranceformer      tranceformer@hotmail.com
någon annan       nagonannan@hotmail.com
Medlem sedan mars 20033 686 inlägg
#44

Över objConn.Open verkar mest lämpligt. Det skulle jag testat. Jag har dock inga större erfarenheter gällande MySQL-databashantering och -kopplingar. Som nog märks. :)

Medlem sedan juni 2004128 inlägg
#45

Ok, tack! Du är lite snabb för mig ;)

Medlem sedan juni 2004128 inlägg
#46

Behöver man inte stänga på slutet som i ditt första exempel?

Medlem sedan mars 20033 686 inlägg
#47

Jo, men det gör man antagligen på samma sätt som vanligt. Det är ju bara Connection-strängen som byts ut nu. Men detta görs ju efter du loopat ut datan.

Medlem sedan juni 2004128 inlägg
#48

magnusfernstrom skrev:

Detta hittade jag när jag sökte lite. En koppling mot en MySQL-databas.

<%
Dim objConn
Dim objRS
Set objRS = Server.CreateObject("ADODB.Recordset")
Set objConn = Server.CreateObject("ADODB.Connection")

objConn.ConnectionString=" DRIVER={MySQL};SERVER=localhost;DATABASE=[DOMAIN_COM];UID=[DOMAIN_COM];PWD=[PASSWORD];"
objConn.Open

objRS.Open "[QUERY]", objConn, 3,3
%>

Vad betyder det sista i koden:
objRS.Open "[QUERY]", objConn, 3,3
Speciellt då 3,3.

Medlem sedan feb. 200112 078 inlägg
#49

Förkortat ganska grovt, så betyder 3,3 ungefär "Writeable", alltså inte skrivskyddat recordset.

[QUERY] skall innehålla din SQL-fråga och objConn är ditt connectionobjekt.

Typ;

objRS.Open "SELECT * FROM myTable", objConn, 3,3
Medlem sedan juni 2004128 inlägg
#50

Om jag bara ska läsa in information till databasen, ska jag då använda mig av den raden? Låter som att jag där ska visa någonting på sidan...
Förlåt om jag ställer dumma frågor, men jag är verkligen ny på det här området ;)

Medlem sedan nov. 20017 144 inlägg
#51

Skall du skriva till databasen skall köra med execute:

objConn.execute("INSERT INTO DATABASEN kolumn_ett, kolumn_två VALUES('Hej','Då')"),,128
Medlem sedan juni 2004128 inlägg
#52

Ok, innan hade jag en SQLsats för att lägga in som det stog i ett tidigare inlägg, ska jag ersätta den med execute-koden?
Vad står ,,128 för längst bak i koden?

Medlem sedan nov. 20017 144 inlägg
#53

Vet inte vilket inlägg du menar.
,,128: Betyder att inget tomt recordset skall skapas, använd det på DELETE, UPDATE och INSERT.

Medlem sedan juni 2004128 inlägg
#54

Det här har jag gått efter förut, men sedan har jag ändrat för att det är en MySQL-databas.

<%
   Set con = Server.CreateObject("ADODB.Connection")
   con.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("databas.mdb")
   SQL = "INSERT INTO (dbNamn,dbEmail) VALUES (' " & Request.Form("namn") & "'. '" & Request.Form("email") & "'"
   Set rs = db.Execute(SQL)

   rs.Close
   Set rs = nothing
   db.Close
   Set db = nothing

   Response.Redirect "start.asp"
%>

Hur borde koden se ut?

Medlem sedan juni 2004128 inlägg
#55

Ska jag ha detta med?:

objRS.Open "[QUERY]", objConn, 3,3

Vad borde stå inom "[QUERY]" isåfall, om jag bara ska skicka information till databasen?

Medlem sedan nov. 20017 144 inlägg
#56

Du skrev:

Hur borde koden se ut?

<%
   Set con = Server.CreateObject("ADODB.Connection")
   con.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("databas.mdb")
   SQL = "INSERT INTO (dbNamn,dbEmail) VALUES (' " & Request.Form("namn") & "'. '" & Request.Form("email") & "'"
   Set rs = db.Execute(SQL)[b],,128[/b]

   rs.Close
   Set rs = nothing
   db.Close
   Set db = nothing

   Response.Redirect "start.asp"
%>

objRS.Open "[QUERY]", objConn, 3,3
Behöver du bara ha om du skall skriva ut något, och det gör du ju inte när du skall göra en insert.

Medlem sedan juni 2004128 inlägg
#57

Kan jag fortfarande ha koden sådär? Tänkte på vad du skrev om execute..

objConn.execute("INSERT INTO DATABASEN kolumn_ett, kolumn_två VALUES('Hej','Då')"),,128
Medlem sedan juni 2004128 inlägg
#58

Fick det här felmeddelandet när jag testade:

Microsoft VBScript compilation error '800a0401'

Expected end of statement

/insert.asp, line 27

Set objRS = db.Execute(SQL),,128
---------------------------^

Medlem sedan nov. 20017 144 inlägg
#59

Det skall vara ett komma(,) och inte en punkt mellan values

  SQL = "INSERT INTO (dbNamn,dbEmail) VALUES (' " & Request.Form("namn") & "', '" & Request.Form("email") & "'"
   Set rs = db.Execute(SQL),,128
Medlem sedan mars 20033 686 inlägg
#60

Förlåt. Det var jag som gjorde en tabbe när jag skrev den. Aldrig punkt, alltid komma ;)

Kom ihåg det tranceformer :)

282 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)