<?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;        
 
    }
 
        
 
    
 
}
 
 
 
 
?>
 
 |