Monday, January 20, 2025

PHP Tutorial – Databases in PHP, An Introduction

There’s little doubt that the tremendous popularity of PHP is due in large
part to its ability to easily utilize a wide variety of powerful database
systems.  Adding a database to a website can provide the means for great
dynamic content, all kinds of user interactivity and a range of flexibility and
manageability that could not easily be accomplished without it.  Sounds
great, right?  But what exactly is a database, you ask?  And this is
the perfect time to ask….  let’s explore!

A database is a collection of data that is stored independently of the manner
in which you collect it or may wish to retrieve it.  It is organized for
efficient storage and retrieval, based on the nature of the data, rather than
the collection or retrieval methods.  That makes it clear as mud, right? 
Let’s break it down with a couple of examples.

Do you have a "little black book" — or any good old fashioned name and
address book?  If not, I hope you have at least seen one!  An address
book like that is a collection of data doesn’t really fit the definition of
databases as we have come to know them.  That is because it is organized
according to the manner in which information will be retrieved.  Not
everybody organizes theirs in the same way.  Some may choose to alphabetize
by first name, some by last name and some even by nickname.  Once chosen,
however, the method of storage firmly dictates the method of retrieval.  If
you stored every Barnes under "B", you would have to already know my last name
to find me.  Of course you could always begin at the beginning and read
sequentially through until you found me, but that’s not very efficient —
especially in the case of looking for me as "Mr. Barnes" in a book that’s
organized by first name!

To compound the inefficiency, a computer would have to repeat the search from
the beginning for each and every such retrieval.  You might remember a few
first and last name combinations as you scanned through the book, but the
computer would not, unless a program was specifically written to do so.

Typically, databases store information in tables.  Tables organize data
into rows and columns.  Each row represents a single record, such as one
name and address.  Each column holds a part of the record, such as a first
name, or a phone number.  With such an arrangement records could be rapidly
resorted based on the values found in any column (or combination of columns)
just like you can in a spreadsheet program.  Thus you could efficiently
retrieve any record based on any part of the record, regardless of how it was
put into the table.  Internally, database systems have technologies to make
this kind of sort/retrieve extremely efficient – but that’s a part of another
story!

Imagine a table that holds lots of names and addresses.  Now imagine
another table that holds information about lots of televisions, including serial
numbers, manufacturers and models.  Now imagine that each television record
is linked to the name and address record of the house in which the TV can be
found.  With these links in place it would be easy to use our sort/retrieve
mechanism to provide a list of houses on Main street that have Sony TVs. 
Extracting information from a database in this way is known as querying the
database.

The ability to query the database in this fashion is the root of its power. 
Implementing this power on a computer system involves, surprise, surprise — a
language!  In our last example, we could create a question, or query, such
as: list houses where the street name is "Main St." and the linked TV
manufacturer is "Sony".  Now we have a query that has some structure! 
That’s right!  Creating a set of structures for queries, and defining a
simple language in which to specify those queries gives us a Structured Query
Language, SQL.  Using SQL is surprisingly easy, as you will soon find out.

There are plenty of database systems out there, most of which use SQL. 
If you are in a Microsoft Windows environment you will often find Access, the
Microsoft SQL Desktop Engine (MSDE) or their granddaddy, Microsoft SQL server. 
When it comes to the web, however, we find MySQL all over the place.  With
a price tag of zero (in your currency of choice) its affordability might well
explain this.  MySql is available for most Unix/Linux flavors as well as
for Windows.  Price and availability have made it my choice for a database
system to use as we continue with our PHP database examples.  You will not
have to change very much, however, for each axample to be applied to virtually
any database system.  Ah! – Another great advantage of database systems!

 

Get the Free Newsletter!

Subscribe to Developer Insider for top news, trends & analysis

Popular Articles

Featured