Identation and new funcionality of inserting record

This commit is contained in:
ahwelp
2022-03-23 22:00:20 +00:00
parent 50c4c20ae1
commit f5c2a9b6f4
+67 -24
View File
@@ -2,9 +2,11 @@
namespace ORM; namespace ORM;
class DBInstance { class DBInstance
{
private static function addPrefix($sql, $instance = 'default'){ private static function addPrefix($sql, $instance = 'default')
{
$con = Connections::getConnection($instance); $con = Connections::getConnection($instance);
//Where is preg_replace when we need it D`: //Where is preg_replace when we need it D`:
@@ -30,7 +32,8 @@ class DBInstance {
* @param Array $data Pass the info to be replaced on the query_prepare * @param Array $data Pass the info to be replaced on the query_prepare
* @param String $instance Select the connection to execute * @param String $instance Select the connection to execute
*/ */
public static function execute($sql, $data = null, $instance = 'default') { public static function execute($sql, $data = null, $instance = 'default')
{
$sql = self::addPrefix($sql, $instance); $sql = self::addPrefix($sql, $instance);
if ($data) { if ($data) {
self::queryPrepare($sql, $data, $instance); self::queryPrepare($sql, $data, $instance);
@@ -44,7 +47,9 @@ class DBInstance {
* *
* @ctag DBInstance::lastInsert(); * @ctag DBInstance::lastInsert();
*/ */
public static function lastInsert($instance = 'default') {
public static function lastInsert($instance = 'default')
{
$con = Connections::getConnection($instance); $con = Connections::getConnection($instance);
return $con->lastInsertId(); return $con->lastInsertId();
} }
@@ -63,7 +68,8 @@ class DBInstance {
* *
* @return pointer A pointer for a foreach loop * @return pointer A pointer for a foreach loop
*/ */
public static function query($sql, $data = null, $instance = 'default') { public static function query($sql, $data = null, $instance = 'default')
{
$sql = self::addPrefix($sql, $instance); $sql = self::addPrefix($sql, $instance);
if ($data) { if ($data) {
@@ -80,7 +86,7 @@ class DBInstance {
* @ctag DBInstance::queryOne($sql); * @ctag DBInstance::queryOne($sql);
* @ctag DBInstance::queryOne($sql, []); * @ctag DBInstance::queryOne($sql, []);
* *
* This method will execute a SQL and return the first featches register * This method will execute a SQL and return the first featched register
* *
* @param String $sql The SQL to be executed * @param String $sql The SQL to be executed
* @param Array $data Pass the info to be replaced on the query_prepare * @param Array $data Pass the info to be replaced on the query_prepare
@@ -88,8 +94,10 @@ class DBInstance {
* *
* @return stdClass A object with the record info * @return stdClass A object with the record info
*/ */
public static function queryOne($sql, $data = null, $instance = 'default') { public static function queryOne($sql, $data = null, $instance = 'default')
{
$sql = self::addPrefix($sql, $instance); $sql = self::addPrefix($sql, $instance);
if ($data) { if ($data) {
return self::queryPrepare($sql, $data, $instance); return self::queryPrepare($sql, $data, $instance);
} else { } else {
@@ -114,11 +122,12 @@ class DBInstance {
* *
* @return stdClass A object with the record info * @return stdClass A object with the record info
*/ */
public static function getRecord($table, $data = Array(), $select = Array('*'), $instance = 'default'){ public static function getRecord($table, $data = array(), $select = array('*'), $instance = 'default')
{
$select = implode(', ', $select); $select = implode(', ', $select);
$conditions = ""; $conditions = "";
$params = Array(); $params = array();
foreach ($data as $key => $cond) { foreach ($data as $key => $cond) {
if (is_array($cond)) { if (is_array($cond)) {
@@ -133,7 +142,6 @@ class DBInstance {
$conditions .= "$key $cond[0] :$key AND "; $conditions .= "$key $cond[0] :$key AND ";
$params[$key] = $cond[1]; $params[$key] = $cond[1];
} }
} else { } else {
$conditions .= "$key = :$key AND "; $conditions .= "$key = :$key AND ";
$params[$key] = $cond; $params[$key] = $cond;
@@ -141,12 +149,13 @@ class DBInstance {
} }
$conditions = rtrim($conditions, 'AND '); $conditions = rtrim($conditions, 'AND ');
if($conditions == ""){ $conditions = "1 = 1"; } if ($conditions == "") {
$conditions = "1 = 1";
}
$sql = "SELECT $select FROM {" . $table . "} WHERE $conditions LIMIT 1"; $sql = "SELECT $select FROM {" . $table . "} WHERE $conditions LIMIT 1";
return self::queryOne($sql, $params, $instance); return self::queryOne($sql, $params, $instance);
} }
/** /**
@@ -163,7 +172,8 @@ class DBInstance {
* *
* @return stdClass A object with the record info * @return stdClass A object with the record info
*/ */
public static function getRecordSql($sql, $data = null, $instance = 'default'){ public static function getRecordSql($sql, $data = null, $instance = 'default')
{
$sql = self::addPrefix($sql, $instance); $sql = self::addPrefix($sql, $instance);
if ($data) { if ($data) {
@@ -189,10 +199,11 @@ class DBInstance {
* *
* @return stdClass A object with the record info * @return stdClass A object with the record info
*/ */
public static function getRecords($table, $data = null, $select = Array('*'), $limits = Array(), $instance = 'default'){ public static function getRecords($table, $data = null, $select = array('*'), $limits = array(), $instance = 'default')
{
$pointer = self::getRecordsPointer($table, $data, $select, $limits, $instance); $pointer = self::getRecordsPointer($table, $data, $select, $limits, $instance);
$elements = Array(); $elements = array();
foreach ($pointer as $point) { foreach ($pointer as $point) {
$key = array_keys((array) $point)[0]; $key = array_keys((array) $point)[0];
$elements[((array) $point)[$key]] = $point; $elements[((array) $point)[$key]] = $point;
@@ -215,12 +226,13 @@ class DBInstance {
* *
* @return stdClass A object with the record info * @return stdClass A object with the record info
*/ */
public static function getRecordsPointer($table, $data = Array(), $select = Array('*'), $limits = Array(), $instance = 'default'){ public static function getRecordsPointer($table, $data = array(), $select = array('*'), $limits = array(), $instance = 'default')
{
$select = implode(', ', $select); $select = implode(', ', $select);
$conditions = ""; $conditions = "";
$limits_sql = ""; $limits_sql = "";
$params = Array(); $params = array();
foreach ($data as $key => $cond) { foreach ($data as $key => $cond) {
if (is_array($cond)) { if (is_array($cond)) {
@@ -235,7 +247,6 @@ class DBInstance {
$conditions .= "$key $cond[0] :$key AND "; $conditions .= "$key $cond[0] :$key AND ";
$params[$key] = $cond[1]; $params[$key] = $cond[1];
} }
} else { } else {
$conditions .= "$key = :$key AND "; $conditions .= "$key = :$key AND ";
$params[$key] = $cond; $params[$key] = $cond;
@@ -247,7 +258,10 @@ class DBInstance {
} }
$conditions = rtrim($conditions, 'AND '); $conditions = rtrim($conditions, 'AND ');
if($conditions == ""){ $conditions = "1 = 1"; $params = false; } if ($conditions == "") {
$conditions = "1 = 1";
$params = false;
}
$sql = "SELECT $select FROM {" . $table . "} WHERE $conditions $limits_sql"; $sql = "SELECT $select FROM {" . $table . "} WHERE $conditions $limits_sql";
@@ -268,17 +282,18 @@ class DBInstance {
* *
* @return Array Array with objects representing the database data * @return Array Array with objects representing the database data
*/ */
public static function getRecordsSql($sql, $data = null, $instance = 'default'){ public static function getRecordsSql($sql, $data = null, $instance = 'default')
{
$sql = self::addPrefix($sql, $instance); $sql = self::addPrefix($sql, $instance);
$pointer = Array(); $pointer = array();
if ($data) { if ($data) {
$pointer = self::queryPrepare($sql, $data, $instance); $pointer = self::queryPrepare($sql, $data, $instance);
} else { } else {
$con = Connections::getConnection($instance); $con = Connections::getConnection($instance);
$pointer = $con->query($sql, \PDO::FETCH_OBJ); $pointer = $con->query($sql, \PDO::FETCH_OBJ);
} }
$elements = Array(); $elements = array();
foreach ($pointer as $point) { foreach ($pointer as $point) {
$key = array_keys((array) $point)[0]; $key = array_keys((array) $point)[0];
$elements[((array) $point)[$key]] = $point; $elements[((array) $point)[$key]] = $point;
@@ -286,12 +301,40 @@ class DBInstance {
return $elements; return $elements;
} }
public static function queryPrepare($sql, $data = Array(), $instance = 'default') { public static function insertRecord($table, $data = array(), $connection = 'default')
{
if (is_object($data)) {
$data = (array)$data;
}
$columns = array_keys($data);
$first_argument = '';
$second_argument = '';
$insert_data = array();
foreach ($columns as $column) {
$first_argument .= $column . ', ';
$insert_data[$column] = $data[$column];
$second_argument .= ":$column, ";
}
$first_argument = rtrim($first_argument, ', ');
$second_argument = rtrim($second_argument, ', ');
$sql = "INSERT INTO {" . $table . "} ($first_argument) VALUES ($second_argument)";
DBInstance::execute($sql, $insert_data, $connection);
}
public static function queryPrepare($sql, $data = array(), $instance = 'default')
{
$sql = self::addPrefix($sql, $instance); $sql = self::addPrefix($sql, $instance);
$con = Connections::getConnection($instance); $con = Connections::getConnection($instance);
$statement = $con->prepare($sql); $statement = $con->prepare($sql);
$statement->execute($data); $statement->execute($data);
return $statement->fetchAll(\PDO::FETCH_OBJ); return $statement->fetchAll(\PDO::FETCH_OBJ);
} }
} }