public function find($id, $field = null) { if (!$id) { return false; } $fieldConstraint = $field ? $field : $this->idField; // When a single ID has been given, find it, when an array has been given find it with IN()... $db = Database::getConnection(); $query = $db->query(sprintf("SELECT %s FROM %s WHERE %s %s", implode(',', $this->modelFields), $this->tableName, $fieldConstraint, is_array($id) ? Database::buildSQLINClause($id) : '=:id'), is_array($id) ? null : [':id' => $id]); if ($query && $query->rowCount() == 1) { $query->setFetchMode(PDO::FETCH_INTO, $this); $query->fetch(PDO::FETCH_INTO); return $this; } else { if ($query && $query->rowCount() > 1) { $objects = $query->fetchAll(PDO::FETCH_CLASS, get_called_class()); return $objects; } else { return false; } } }