The MySQL database is one of the most popular among PHP developers. It's my database of choice, and has held up remarkably well in multiple e-commerce situations. Therefore, you would be correct in assuming that there are numerous well-documented PHP functions you can use in conjunction with your MySQL databases. However, you only need a few of these functions in order to make a simple connection and select some data:
mysql_connect - opens a connection to the MySQL server; requires a hostname, username and password.
mysql_db_select - selects a database on the MySQL server.
mysql_query - issues the SQL statement.
mysql_fetch_array - puts a SQL statement result row in an array.
mysql_free_result - frees the resources in use by the current connection.
mysql_close - closes the current connection.
For the rest of PHP's MySQL-related functions, get thee to the PHP Manual!
Just for argument's sake, let's pretend that MySQL is already installed on your system, and you have a valid username and password for an existing database. Let's also assume that you've created a table on that database, called COFFEE_INVENTORY. The COFFEE_INVENTORY table has three columns: COFFEE_NAME, ROAST_TYPE and QUANTITY.
The rows in the COFFEE_INVENTORY table could be populated with data such as:
French Roast,dark,18
Kenya,medium,6
Ethiopian Harrar,medium,35
Sumatra,dark,8
Columbian,light,12
Now, let's do some PHP. Before you begin, you must know the name of the server on which the database resides, and have a valid username and password for that server. Then, start your PHP code by creating a connection variable:
Test that a connection was established and if it wasn't, print an error message and exit the program:
if (!$connection) {
echo "Couldn't make a connection!";
exit;
}
If you have made it through the connection test, the next steps are to select the database and create the SQL statement. Suppose that the COFFEE_INVENTORY table exists in a MySQL database called "myDB". First, create a database variable, such as:
$db = mysql_select_db("myDB", $connection);
Next, test that the database was selected. If it wasn't, print an error message and exit the program:
if (!$db) {
echo "Couldn't select database!";
exit;
}
Up to this point, you've told PHP to connect to a server and select a database. If you've made it this far, you can issue a SQL statement and hopefully see some results! Using the COFFEE_INVENTORY table, suppose you want to view your inventory, including the name of the coffee and the roast type, with the highest number of bags listed first. Create a variable that holds your SQL statement:
$sql = "SELECT COFFEE_NAME, ROAST_TYPE, QUANTITY
FROM COFFEE_INVENTORY
ORDER BY QUANTITY DESC";
Next, create a variable to hold the result of the query, carried out by the mysql_query function. The mysql_query function takes two arguments: the connection and SQL statement variables you've previously created.
$sql_result = mysql_query($sql,$connection);
To format the results currently held in $sql_result, first separate the results by row, using the mysql_fetch_array function:
while ($row = mysql_fetch_array($sql_result)) {
// more code here
}
The while loop will create an array called $row for each record in the result set. To get the individual elements of the record (COFFEE_NAME, ROAST_TYPE, QUANTITY), create specific variables:
You'll probably want to print the results in a simple HTML table. Step back and place this statement before the while loop begins, to open the table tag and create the row headings:
Finally, you'll want to free up the resources used to perform the query, and close the database connection. Failing to do so could cause memory leaks and other nasty resource-hogging things to occur.