| 
<?php
/**
 *        @name objToSql class by Cale Orosz
 *        @author Cale Orosz
 *         @email [email protected]
 *         @version 1.0
 *
 *        You are free to use this code free of charge, modify it, and distrubute it,
 *        just leave this comment block at the top of this file.
 *
 *       Go to phpclasses.org for examples on how to use this class
 *
 *        Changes/Modifications
 *        03/09/2011 - version 1.0 released
 *
 */
 
 
 
 
 
 class objToSql {
 
 private     $__tablename;
 public      $__where;                //can be a string or an array
 
 
 
 public function __construct($tablename) {
 
 $this->__tablename = $tablename;
 
 }
 
 
 private function __buildValues() {
 
 
 $items = array();
 foreach ($this as $var=> $val) {
 
 //only pick out the right items from the $_REQUEST array
 if ($var != "__tablename" && $var != "__where") {
 $itemname = $var;
 $itemval = $val;
 
 //make sure the value is set right, change to null if its blank
 //if ($itemval == "") {
 if (is_null($itemval)) {
 $itemval = "NULL";
 } else {
 $itemval = "'" . addslashes($itemval) . "'";
 }
 
 $items[$itemname] = $itemval;
 
 }
 }
 
 return $items;
 
 }
 
 
 public function getValuesFrom($reqvar, $prefix) {
 
 if (!$reqvar) {
 $reqvar = $_GET;
 }
 
 //capture all of the values we want to store.  clean the data so its safe to insert into db
 $items = array();
 foreach ($reqvar as $var=> $val) {
 
 //only pick out the right items from the $_REQUEST array
 
 if (substr($var, 0, strlen($prefix)) == $prefix) {
 $itemname = substr($var, strlen($prefix));
 $itemval = $val;
 
 //make sure the value is set right, change to null if its blank
 if ($itemval == "") {
 $itemval = "";
 } else {
 $itemval = $itemval;
 }
 
 $this->$itemname = $itemval;
 
 }
 }
 
 
 }
 
 
 
 public function getUpdateSql() {
 
 $items = $this->__buildValues();
 
 
 $sql = "UPDATE `" . $this->__tablename . "` set ";
 
 foreach ($items as $var=>$val) {
 if ($var != "__tablename") {
 $sql .= '`' . $var . "`=" . $val . ", ";
 }
 }
 
 //chop off the extra comma at the end
 $sql = substr($sql, 0, -2);
 
 
 //generate where clause
 if (is_array($this->__where)) {
 if (count($this->__where) > 0) {
 
 $sql .= " WHERE ";
 
 foreach ($this->__where as $wherevar=>$whereval) {
 $sql .= '`' . $wherevar . "`='" . addslashes($whereval) . "'";
 $sql .= ' and ';
 }
 
 $sql = substr($sql, 0, -5);
 
 }
 } elseif (is_string($this->__where)) {
 $sql.= " WHERE " . $this->__where;
 }
 
 
 return $sql;
 
 }
 
 
 
 public function getInsertSql() {
 
 $items = $this->__buildValues();
 
 
 $sql = "INSERT INTO " . $this->__tablename . " (";
 
 foreach ($items as $eachvar=>$eachval) {
 if ($eachvar != "id") {
 $sql .= "`" . $eachvar . "`" . ", ";
 }
 }
 
 //chop off the extra comma at the end
 $sql = substr($sql, 0, -2);
 
 $sql .= ") VALUES (";
 
 foreach ($items as $eachvar=>$eachval) {
 if ($eachvar != "id") {
 $sql .= $eachval . ", ";
 }
 }
 $sql = substr($sql, 0, -2);
 $sql .= ")";
 
 return $sql;
 
 }
 
 
 public function insert($hide_errors=true) {
 
 $sql = $this->getInsertSql();
 $rs = mysql_query($sql);
 
 if ($hide_errors == false) {
 if (!$rs) {
 echo mysql_error;
 }
 }
 return $rs;
 }
 
 public function update($hide_errors=true) {
 
 $sql = $this->getUpdateSql();
 $rs = mysql_query($sql);
 
 if ($hide_errors == false) {
 if (!$rs) {
 echo mysql_error();
 }
 }
 return $rs;
 }
 
 
 }
 
 
 
 ?>
 |