| 
<?php
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
 SQL Query Builder
 
 Build SQL Queries dynamically with
 a better-looking code rather than just
 define the 'distracting' SQL string syntax
 
 DETAILED EXAMPLE SCRIPT
 *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
 
 /* Including the class definition */
 require_once("SqlQueryBuilder.class.php");
 
 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
 /* INSERT */
 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
 
 /* Creating an object for the INSERT query */
 $query = new SqlQueryBuilder("insert");
 
 /* Set the table we want to work with */
 $query->setTable("users");
 
 /**
 * Add a first column and value
 * Note: Remember to add the single quotes when inserting strings
 */
 $query->addColumn("email");
 $query->addValue("'[email protected]'");
 /* some code... (could be a loop) */
 $query->addColumn("name");
 $query->addValue("'David R. Demaree'");
 
 /**
 * We can add data adding all the columns first
 * and then their values, just be careful about the order
 */
 $query->addColumn("country");
 $query->addColumn("phone_number");
 /* some code... */
 $query->addValue("'Mexico'");
 $query->addValue("5514891568");
 
 print "Insert query: " . $query->buildQuery() . "\n";
 
 /**
 * Output should be:
 * INSERT INTO users (email, name, country, phone_number) VALUES ('[email protected]', 'David R. Demaree', 'Mexico', 5514891568);
 */
 
 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
 /* SELECT STATEMENT */
 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
 
 
 /* Creating an object for the SELECT query */
 $query = new SqlQueryBuilder("select");
 
 /* Set the table to work with */
 $query->setTable("Users");
 
 /**
 * Specify which columns to select
 * You can use $query-addColumn("*") instead
 */
 $a_variable = "email"; // Column names can be variable rather than constant
 
 $query->addColumn("name");
 $query->addColumn($a_variable);
 
 /* Set the WHERE clause */
 $query->setWhere("id = 452");
 
 /* setOrderBy(), setGroupBy(), setHaving() */
 $query->setOrderBy("last_name ASC");
 
 /* At last, once the data is complete, we build the SQL string */
 $sql_query = $query->buildQuery();
 
 print "Select query: " . $sql_query . "\n";
 
 /* Output should be:
 SELECT name, email FROM Users WHERE id = 452 ORDER BY last_name ASC;
 */
 
 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
 /* The same rules apply to UPDATE and DELETE
 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
 
 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
 /* ARBITRARY QUERY */
 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
 /**
 * Note:
 * Maybe you are thinking that it is much easier to directly
 * define a string containing the needed query than setting an object
 * just to copy a string. In fact it is! But this function is usefull
 * for manteining coding standards through your code
 */
 $query = new SqlQueryBuilder("query");
 $query->setQuery("DROP TABLE users");
 
 print "Arbitrary query: " . $query->buildQuery() . "\n";
 
 /* Output should be:
 DROP TABLE users;
 */
 ?>
 |