While not the most frequently-used database type by PHP programmers, there must be one or two out there who use Informix, else the built-in functions wouldn't exist. While there are numerous fuctions for PHP -> Informix connectivity,
documented in detail in the PHP Manual, you only need a few of these functions in order to make a simple connection and select some data:
ifx_connect - opens a connection to the Informix server; requires a database name, username and password.
ifx_query - issues the SQL statement.
ifx_htmltbl_result - places the results of your SQL statement into a nicely-formatted HTML table.
ifx_free_result - frees the resources in use by the current connection.
ifx_close - closes the current connection.
Just for argument's sake, let's pretend that Informix 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'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 ID of the query, carried out by the ifx_query function. The ifx_query function takes two arguments: the connection and SQL statement variables you've just created.
$sql_result = ifx_query($sql,$connection);
To format the results currently held in $sql_result, use the very handy ifx_htmltbl_result function. This function uses the result ID variable and HTML table options, such as "border=1".
ifx_htmltbl_result($sql_result,"border=1");
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.