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
%>
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å?
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
Ö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. :)
Ok, tack! Du är lite snabb för mig ;)
Behöver man inte stänga på slutet som i ditt första exempel?
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.
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.
OOveRRidEMedlem sedan feb. 200112 078 inlägg 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
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 ;)
Jesper TMedlem sedan nov. 20017 144 inläggSkall du skriva till databasen skall köra med execute:
objConn.execute("INSERT INTO DATABASEN kolumn_ett, kolumn_två VALUES('Hej','Då')"),,128
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?
Jesper TMedlem sedan nov. 20017 144 inläggVet inte vilket inlägg du menar.
,,128: Betyder att inget tomt recordset skall skapas, använd det på DELETE, UPDATE och INSERT.
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?
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?
Jesper TMedlem sedan nov. 20017 144 inlägg
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.
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
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
---------------------------^
Jesper TMedlem sedan nov. 20017 144 inläggDet 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
Förlåt. Det var jag som gjorde en tabbe när jag skrev den. Aldrig punkt, alltid komma ;)
Kom ihåg det tranceformer :)