Using A mySQL Databases
by Ben O'Neill
Databases are the best way to keep your web site up-to-date and dynamic. Databases are used these days by
thousands of web sites. They are used for storing news and general information. Web sites like the ASP
Index (www.aspin.com) are run on large databases. Databases make a web site easy to update and once you
have the base script, to add, remove and modify things in a database is very easy.
To start you need to know how to connect to a database. ASP can connect to virtually any type, from
Microsoft Access to SQL. In this example I'll be using mySQL and OLE DB to connect to it.
mySQL can be downloaded from the mySQL web site (www.mysql.com). You will also need the provider used to
connect to it, also available from the mySQL web site.
You may be asking what's OLE DB? I'm used to ODBC and DSN. OLE DB is faster and more stable. It's almost
exactly the same.
First we need to connect to the database, because it's a mySQL database you also need to supply a database
name. (in mySQL you can have mulitple databases on the same SQL server.)
<%
strConnection = "driver={MySQL};server=localhost;uid=benoneill;pwd=mypassword;database=databasename"
Set adoDataConn = Server.CreateObject("ADODB.Connection")
adoDataConn.Open strConnection
%>
And now we've connected. Let's pretend we've got a big list of lots and lots of email addresses, here's
the contents of our database, it allows me to show you how it works better.
Table Name: emailadds
name??????????????emailadd
------------------------------------------------------
Ben???????????????sheepcow@planetunreal.com
Fred???????? ??????freddy@thebigisp.com
Ben Harding?? ??????benharding@hisisp.com
Dave Geralding ??????daveg@mymail.com
Now we have the database open let's run a query to list and output all the names and email address in a
nice easy to view table.
<%
?strQuery = "SELECT * FROM emailadds"
?Set rsEmailData = adoDataConn.Execute(strQuery)
?If Not rsEmailData.BOF Then
%>
<TABLE>
?/span><TR>
? <TD<b>Name</b></TD>
? <TD><b>Email Address</b></TD>
?/span></TR>
<%
?Do While Not rsEmailData.EOF
%>
?/span><TR>
? <TD><%=rsEmailData("name").Value %></TD>
? <TD><%=rsEmailData("emailadd").Value %></TD>
?/span></TR>
<%
??rsEmailData.MoveNext
?Loop
%>
</TABLE>
<%
?Else
?? Response.Write("Sorry, no email addresses found.")
?End If
%>
There we go. If no records are found then it says "Sorry, no email addresses found".
That query is simple enough, it tells the database to get (SELECT) all the records and all the fields from
the table named emailadds.
How about we make it only show people with the name "ben" somewhere in their name, simple change the query
to this:
SELECT * FROM emailadds WHERE name LIKE '%ben%'
That query would return only 2 records, Ben and Ben Harding.
It's important you use single quotes ('), because double quotes won't work. You can also be very selective
and do:
SELECT * FROM emailadds WHERE name='Ben'
That query would only return Ben, not Fred or Ben Harding, or Dave Geralding.
After using databases you should always clear up. Close the database and the record set, and set them to
nothing so that the memory used by them is regained, do this by writing this:
<%
?rsEmailData.Close
?adoDataConn.Close
?Set adoDataConn = Nothing
?Set rsEmailData = Nothing
%>