Example #1
0
 public function selectModel(Model $model)
 {
     $fields = self::glueArray($model::getFieldsNames());
     $table = $model::getTableName();
     $condition = self::generateOmits($model->getSearchFields(), " AND ");
     $extra = $model->getExtraStatement();
     $values = array();
     $references = self::generateReferences($model, $model::getSearchFields(), $values);
     $types = self::generateTypes($model, $model::getSearchFields());
     $stmt = $this->mysqli->prepare("SELECT {$fields} FROM `{$table}` WHERE {$condition} {$extra}");
     if (!$stmt) {
         throw new ApplicationException("cannot prepare statement");
     }
     call_user_func_array(array($stmt, "bind_param"), array_merge(array($types), $references));
     $stmt->execute();
     $result = $stmt->get_result();
     if ($result) {
         if ($row = $result->fetch_assoc()) {
             foreach ($row as $key => $value) {
                 $model->set($key, $value);
             }
             return true;
         }
     }
     return false;
 }