New features, counting registers, fetch one

This commit is contained in:
Artur
2019-01-07 05:59:46 -02:00
parent 2b4c158035
commit 563c08e4b2
2 changed files with 51 additions and 14 deletions
+5
View File
@@ -19,6 +19,11 @@ class DBInstance {
return $con->query($sql, \PDO::FETCH_OBJ); return $con->query($sql, \PDO::FETCH_OBJ);
} }
public static function query_one($sql, $instance = 'default') {
$con = Connections::get_connection('default');
return $con->query($sql, \PDO::FETCH_OBJ)->fetch();
}
public static function query_prepare($sql, $arguments, $instance = 'default'){ public static function query_prepare($sql, $arguments, $instance = 'default'){
$con = Connections::get_connection('default'); $con = Connections::get_connection('default');
$statement = $con->prepare($sql); $statement = $con->prepare($sql);
+36 -4
View File
@@ -147,6 +147,34 @@ abstract class Entity {
return $objects; return $objects;
} }
public function count($criterias = Array(), $trashed = false) {
$criteria_sql = "";
foreach ($criterias as $key => $criteria) {
if ($criteria_sql != "") {
$criteria_sql .= " AND ";
} else {
$criteria_sql .= " WHERE ";
}
if (is_string($criteria[1])) {
$criteria_sql .= "$key $criteria[0] '$criteria[1]'";
} else {
$criteria_sql .= "$key $criteria[0] $criteria[1]";
}
}
if ($this->softdelete && !$trashed) {
$sql = "SELECT COUNT(*) FROM $this->table_name $criteria_sql AND deleted_at is null";
} else {
$sql = "SELECT COUNT(*) FROM $this->table_name $criteria_sql";
}
$results = DBInstance::query_one($sql, $this->connection_name);
return $results->count;
}
public function find_one($criterias = Array(), $select = Array('*'), $trashed = false) { public function find_one($criterias = Array(), $select = Array('*'), $trashed = false) {
$select_sql = ""; $select_sql = "";
$criteria_sql = ""; $criteria_sql = "";
@@ -157,6 +185,8 @@ abstract class Entity {
foreach ($criterias as $key => $criteria) { foreach ($criterias as $key => $criteria) {
if ($criteria_sql != "") { if ($criteria_sql != "") {
$criteria_sql .= " AND "; $criteria_sql .= " AND ";
} else {
$criteria_sql .= " WHERE ";
} }
if (is_string($criteria[1])) { if (is_string($criteria[1])) {
$criteria_sql .= "$key $criteria[0] '$criteria[1]'"; $criteria_sql .= "$key $criteria[0] '$criteria[1]'";
@@ -175,9 +205,9 @@ abstract class Entity {
} }
if ($this->softdelete && !$trashed) { if ($this->softdelete && !$trashed) {
$sql = "SELECT $select_sql FROM $this->table_name WHERE $criteria_sql AND deleted_at is null $limits_sql"; $sql = "SELECT $select_sql FROM $this->table_name $criteria_sql AND deleted_at is null $limits_sql";
} else { } else {
$sql = "SELECT $select_sql FROM $this->table_name WHERE $criteria_sql $limits_sql"; $sql = "SELECT $select_sql FROM $this->table_name $criteria_sql $limits_sql";
} }
$results = DBInstance::query($sql, $this->connection_name); $results = DBInstance::query($sql, $this->connection_name);
$objects = Array(); $objects = Array();
@@ -205,6 +235,8 @@ abstract class Entity {
foreach ($criterias as $key => $criteria) { foreach ($criterias as $key => $criteria) {
if ($criteria_sql != "") { if ($criteria_sql != "") {
$criteria_sql .= " AND "; $criteria_sql .= " AND ";
} else {
$criteria_sql .= " WHERE ";
} }
if (is_string($criteria[1])) { if (is_string($criteria[1])) {
$criteria_sql .= "$key $criteria[0] '$criteria[1]'"; $criteria_sql .= "$key $criteria[0] '$criteria[1]'";
@@ -221,9 +253,9 @@ abstract class Entity {
$select_sql = rtrim($select_sql, ', '); $select_sql = rtrim($select_sql, ', ');
if ($this->softdelete && !$trashed) { if ($this->softdelete && !$trashed) {
$sql = "SELECT $select_sql FROM $this->table_name WHERE $criteria_sql AND deleted_at is null $limits_sql"; $sql = "SELECT $select_sql FROM $this->table_name $criteria_sql AND deleted_at is null $limits_sql";
} else { } else {
$sql = "SELECT $select_sql FROM $this->table_name WHERE $criteria_sql $limits_sql"; $sql = "SELECT $select_sql FROM $this->table_name $criteria_sql $limits_sql";
} }
$results = DBInstance::query($sql, $this->connection_name); $results = DBInstance::query($sql, $this->connection_name);