Esempio n. 1
0
 public function loadDataFromTableOrView($resultItemTypeName, $tableName, SqlWhere $where = NULL)
 {
     $sql = "SELECT ";
     $properties = get_class_vars($resultItemTypeName);
     $propertyIndex = 0;
     foreach ($properties as $propertyName => $propertyValue) {
         $sql .= $propertyIndex == 0 ? $propertyName : ", " . $propertyName;
         $propertyIndex++;
     }
     $sql .= " FROM " . $tableName;
     if ($where == NULL) {
         $sql .= ";";
     } else {
         $sql .= " WHERE " . $where->getSql() . ";";
     }
     $statement = $this->db->prepare($sql);
     if ($where != NULL) {
         $values = $where->getBindParamArray();
         $arr = array();
         for ($i = 0; $i < count($values); $i++) {
             if ($i == 0) {
                 $arr[$i] = $values[$i];
             } else {
                 $arr[$i] =& $values[$i];
             }
         }
         call_user_func_array(array($statement, "bind_param"), $arr);
     }
     $statement->execute();
     return $this->bindResultsAndCreateResultItems($statement, $resultItemTypeName);
 }