Hur kollar man om en databas i MySQL finns?
Finns databas?
14 svar · 314 visningar · startad av Asa
Mer kod tack! Detta ska kollas i en aspsida!
Set rc = dinconnection.Execute("SHOW DATABASES LIKE 'dittdbnamn'")
If rc.EOF Then
'dittdbnamn fanns inte.
Else
'dittdbnamn fanns.
End If
Tackar! Ska testa
q = "show databases like <dinDatabas>"
set rs = connect.execute(q)
if rs.eof then
'databas finns ej
else
'databas finns
end if
Skapa ny databas då?
Via ASP? Skapar databaser är väl inget man gör så där hux flux?
Så det går ej via Asp? Ska kolla sidan du gav länk till!
ShopName = "shop"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "driver=MySQL;server=localhost;uid=User;pwd=password;database=" & shopName
q = "show databases like " & ShopName
set rs = connect.execute(q)
if rs.eof then
'databas finns ej
else
'databas finns
end if
Denna kod ger fel på Conn.Open. Hur ska jag skriva där. VIll ha så den kollar om databasen finns. Annars skare stå att den ej finns alltså!
För det första ska du ha måsvingar om drivernamnet i connectionstringen.
För det andra bör du inte ange databasnamnet i connectionstringen eftersom du då får ett error redan där om den inte finns:
Conn.Open "driver={MySQL};server=localhost;uid=User;pwd=password;"
För det tredje måste du använda apostrofer i queryn som jag visade ovan:
"SHOW DATABASES LIKE '" & ShopName & "'"
Hur ska man sen kunna öppna just den databasen om det ej står i connectionsträngen utan å ändra i aspkoden??
if rs.eof then
'databas finns ej
else
connect.execute("use " & ShopName)
'Fortsätt använda databasen ShopName.
end if
Oki! Ska testa lite!
eftersom jag själv inte är någon hejjare på mySQL m.m, så löste jag det på mitt egna lilla vis.
Säkert inte helt anpassat till frågan, men jag lekte till det för framtida lösningar..
<%
Dim chkConn,user,pass,host,db,rs,dbExists,Connect
user = "username"
pass = "password"
host = "localhost"
db = "din_databas"
set chkConn = Server.CreateObject("ADODB.Connection")
chkConn.Open "Driver={MYSQL ODBC 3.51 Driver};server=" &host& ";uid=" &user& ";pwd=" &pass
dbExists = False
Set rs = chkConn.Execute("SHOW DATABASES")
If NOT rs.EOF Then
Do Until rs.EOF
If LCase(rs("database")) = LCase(db) Then
dbExists = True
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={MYSQL ODBC 3.51 Driver};server=" &host& ";uid=" &user& ";pwd=" &pass& ";database=" &db
' fortsätt
' med
' din
' kod
' med
' "Connect"
' som
' din
' databaskoppling
End If
rs.MoveNext
Loop
If NOT dbExists Then
call createDB
End If
Else
call createDB
End If
Sub createDB()
chkConn.Execute("CREATE DATABASE " &db)
End Sub
%>
funkade sött