Avatar billede aerobee Nybegynder
07. september 2006 - 22:19 Der er 7 kommentarer og
1 løsning

Importer MySQL database vha ASP

Hej.

Jeg har et problem jeg har leget med i lang tid nu, og kan ikke få det til at fungere - derfor er jeg her nu.

Jeg er ved at udvikle et website som skal gives videre til mange forskellige brugere.
De har ikke forstand på at importere en MySQL database via PHPMyAdmin, derfor vil jeg gerne lave et script hvor de indtaster database navn, server navn, brugernavn og kodeord i en formular, som vi skal bruge senere.

Det jeg gerne vil er at når de har indtastet de detaljer i formularen importerer ASP scriptet automatisk databasen (opretter tabeller, felter og kommer den data i felterne som der skal være) (vha ovenstående info brugeren lige har indtastet) og det er det. Så behøver brugeren ikke at tænke på at skulle importere databasen, de skal blot have detaljerne om deres database.

Så det jeg mangler er at vide hvordan jeg udvikler et script der automatisk opretter tabeller og felter, og importerer den data der skal være i diverse tabeller og felter.

Synes det er et svært spørgsmål, derfor 100 points.
Avatar billede madeindk Nybegynder
07. september 2006 - 22:35 #1
Hej, aeroee - mon ikke det her kan hjælpe dig lidt:

http://www.w3schools.com/sql/sql_create.asp

Det viser dig hvordan du opretter nye tabeller i en database. Det skal så bare rettes til så du definere via en QueryString eller Form hvad de skal hedde :-) Har ikke prøvet det selv - bruger kun min MySQL Administrator til at lave databaser i.
Avatar billede aerobee Nybegynder
07. september 2006 - 22:43 #2
Hej madeindk.
Jeg kan ikke få det til at virke, og kan heller ikke læse mig til hvordan det skal gøres.
Jeg prøvede følgende:

********************
<%
if request.QueryString("id") = 2 then
   
CREATE TABLE table_name
(
column_name1 data_type,
column_name2 data_type,
.......
)

CREATE TABLE Person
(
LastName varchar,
FirstName varchar,
Address varchar,
Age int
)
   
end if
%>
************************

Dog uden held. (Naturligvis med en åben database forbindelse)
Avatar billede aerobee Nybegynder
07. september 2006 - 22:44 #3
Der kommer fejl allerede på første linje --> CREATE TABLE table_name
Og en table kan godt hedde table_name så det kan da ikke være derfor :)
Avatar billede madeindk Nybegynder
07. september 2006 - 22:52 #4
UPS - tror det er mig der har fejlet. Fik ikke lige læst det hele på W3 Schools, det der er ikke beregnet til ASP - men en direkte kommando man kan skrive i en evt. kommanda prompt i MySQL :-)

Sorry, jeg spildte din tid.
Avatar billede ffsoft Praktikant
08. september 2006 - 08:46 #5
Du skal have en connection til databasen. Den kan hedde conn.
Så kan du skrive

strSQL = "CREATE TABLE Person(LastName varchar,FirstName varchar, "
strSQL = "strSQL & "Address varchar,Age int)"

conn.execute strSQL

På den måde får du udført SQL udtrykket ved hjælp af asp.
Avatar billede aerobee Nybegynder
08. september 2006 - 08:56 #6
Ja det ser da fornuftigt ud ffsoft. Men 2 ting.
Hvad med begrænsniger ved f.eks. varchar som kun må være 255 chars lang?
Er det så bare (Lastname varchar(255),Firstname varchar(255) osv... Og det samme gælder int ? F.eks. int(3)

Så kan jeg oprette taballer og felter ja, og så er rester jo bare almindelig SQL.

Men det er jo ikke fordi det er hurtigt at lave når man skal have alt content med.
Jeg troede man kunne redirecte til sit sql dump og så kørte den det også tilbage igen.

Er der virkelig ikke en nemmere måde?
Avatar billede aerobee Nybegynder
08. september 2006 - 09:01 #7
Følgende virker ikke:

*******************************************
strSQL = "CREATE TABLE Person(LastName varchar,FirstName varchar,Address varchar,Age int)"
conn.execute strSQL
*******************************************

Jeg får følgende fejl:

*******************************************
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 'FirstName varchar,Address varchar,Age int)' at line 1
Avatar billede aerobee Nybegynder
08. september 2006 - 09:20 #8
Jeg fik det løst. Jeg skulle også specificere selve felterne.
Dette virkede:

*************************************
strSQL = "CREATE TABLE Person(LastName varchar(50), FirstName varchar(90), Address varchar(76), Age int(7))"
conn.execute strSQL
*************************************

Tak for hjælpen ffsoft
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