23. december 2008 - 12:27Der er
11 kommentarer og 1 løsning
sti til database
Jeg har en database på surftown, som jeg skal lave en ASP forbindelse til. Har jeg ret i at jeg skal bruge stien til databasen for at kunne gøre dette? Jeg har prøvet at finde stien, men det er helt umuligt. Der står intet om det på surftowns support side. De har dog en string man kan bruge:
<% @ LANGUAGE = VBSCRIPT %> <html> <head><title>ASP MySQL Test</title></head> <body> <% dim connectionString dim connection dim rs
rs.Open "SELECT * FROM test ORDER BY 'Name'" Response.write("<p><ul>") while (not rs.EOF) Response.write "<li>" & rs.fields(1).value & "</li>" rs.MoveNext wend Response.write("</ul></p>")
rs.Close connection.Close %> </body> </html>
Denne virker dog ikke (jeg har sat de rigtige info ind). Jeg er ret ny i det her, men så vidt jeg har forstået skal jeg bruge stien til databasen, hvilket også virker meget logisk. Er der nogle der kender en metode eller ved hvor surftown placerer databaserne ville jeg blive utrolig glad (sidder temmelig meget fast i mit projekt hvis jeg ikke finder ud af det).
Access er en fil-database og derfor benytter du en sti til at forbinde til den med - MySQL er en server-database og du kan derfor ikke benytte en sti, men server-navn. Det eksempel du har fundet er derfor helt rigtigt - du skal bare bytte server, database, uid (brugernavn) og pwd (password) med dine egne oplysninger hvilket du formentlig har fået i din oprettelsesmail fra surftown.
det har jeg gjort... Når jeg så åbner siden i en browser får jeg denne fejl:
Error Type: ADODB.Recordset.1 (0x80004005) SQLState: S Native Error Code: 2002 [TCX][MyODBC]Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) /forsog/test.asp, line 16
nej - database-navnet skal du kun bruge i din connectionstring. navnet test er en tabel i databasen. Hvis du sidder lokalt og tester kan fejlen skyldes at de ikke giver lov til at connecte udefra, ellers bruger du de forkerte informationer.
okay... så tror jeg næsten jeg har den. Jeg har åbnet min IP til ekstern database adgang og så skal jeg bare skifte "test" ud med en tabel i min database. Rigtigt?
jeg kender ikke mulighederne hos surftown hvad angår adgang udefra - men ellers ja, din sql skal tilpasses hvor test er tabelnavn og name er et kolonnenavn.
rs.Open "SELECT * FROM test ORDER BY 'Name'" Response.write("<p><ul>") while (not rs.EOF) Response.write "<li>" & rs.fields(1).value & "</li>" rs.MoveNext wend Response.write("</ul></p>")
rs.Close connection.Close %> </body> </html>
Jeg har en tabel jeg kalder "test" og en kolonne jeg kalder name. Jeg får følgende fejl når jeg åbner siden i firefox:
Error Type: Active Server Pages, ASP 0141 (0x80004005) The @ command can only be used once within the Active Server Page. /forsog/test.asp, line 8
Error Type: ADODB.Recordset.1 (0x80004005) SQLState: S Native Error Code: 2002 [TCX][MyODBC]Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) /forsog/test.asp, line 17
Du skal rette Connections fil -- og i din lokal opsætningen til at være til Host site.. Du skal også ændre i filens
Når du oprettet en Mysql databaser fra din udbyder - fremsender de til dig en brugernavn og en Kode.. disse skal du angive i både connectionsfil og den side du ønsker at teste med.
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.