163 lines
3.1 KiB
PHP
163 lines
3.1 KiB
PHP
<?php
|
|
%model_start%
|
|
/*
|
|
Generated from %filename%
|
|
*/
|
|
namespace Vvveb\Sql%namespace%;
|
|
|
|
use \Vvveb\System\Db;
|
|
|
|
class %name%SQL {
|
|
|
|
private $db;
|
|
|
|
protected $filters = %filters%;
|
|
|
|
protected $paramTypes = %paramTypes%;
|
|
|
|
public function __construct(){
|
|
$this->db = Db::getInstance();
|
|
}
|
|
|
|
public function validate($data, $method, $table = '', $ignoreMissing = false) {
|
|
$params = $this->paramTypes[$method] ?? [];
|
|
if (!$params) {
|
|
return false;
|
|
}
|
|
|
|
foreach ($params as $name => $type) {
|
|
if (isset($this->filters[$name])) {
|
|
$params[$name] = $this->filters[$name];
|
|
}
|
|
}
|
|
|
|
return $this->db->validate($data, $params, $table, $ignoreMissing);
|
|
}
|
|
|
|
%methods_start%
|
|
|
|
%methodMultipleTemplate_start%
|
|
|
|
function %name%($params = array()) {
|
|
$paramTypes = %param_types%;
|
|
|
|
$results = [];
|
|
$stmt = [];
|
|
|
|
%statement%
|
|
|
|
if ($results)
|
|
return $results;
|
|
}
|
|
|
|
%methodMultipleTemplate_end%
|
|
|
|
%methods_end%
|
|
}
|
|
%model_end%
|
|
|
|
%query_start%
|
|
|
|
$prevSql = $sql ?? '';
|
|
$sql = '%statement%';
|
|
$sql = trim($sql);
|
|
|
|
if ($sql) {
|
|
$stmt['%query_id%'] = $this->db->execute($sql, $params, $paramTypes);
|
|
|
|
$result = false;
|
|
|
|
if ($stmt['%query_id%']) {
|
|
if (method_exists($stmt['%query_id%'], 'get_result')) {
|
|
$result = $stmt['%query_id%']->get_result();
|
|
} else {
|
|
$result = $this->db->get_result($stmt['%query_id%']);
|
|
}
|
|
}
|
|
|
|
|
|
if (!empty('%array_key%')) {
|
|
if ($result)
|
|
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
|
|
$values = $row;
|
|
if (!empty('%array_value%')) {
|
|
$values = $row['array_value'];
|
|
}
|
|
|
|
if ('%query_id%' == '_') {
|
|
if ($row['array_key'] === null) {
|
|
$results[] = $values;
|
|
} else {
|
|
$results[$row['array_key']] = $values;
|
|
}
|
|
} else {
|
|
if ($row['array_key'] === null) {
|
|
$results['%query_id%'][] = $values;
|
|
} else {
|
|
$results['%query_id%'][$row['array_key']] = $values;
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
if ('%query_id%' == '_') {
|
|
if ($result) {
|
|
$value = %fetch%;
|
|
} else {
|
|
$value = null;
|
|
}
|
|
|
|
if ($value) {
|
|
if (is_array($value)) {
|
|
$results = $results + $value;
|
|
} else {
|
|
$results = $value;
|
|
}
|
|
}
|
|
} else {
|
|
if (isset($results['%query_id%'])) {
|
|
//if multiple results like insert id from @EACH
|
|
if (!is_array($results['%query_id%'])){
|
|
$results['%query_id%'] = [$results['%query_id%']];
|
|
}
|
|
$results['%query_id%'][] = %fetch%;
|
|
} else {
|
|
$results['%query_id%'] = %fetch%;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
%query_end%
|
|
|
|
%varsTemplate_start%
|
|
|
|
if (isset($params['%name%'])) {
|
|
$stmt->bindValue(':%name%', (%type%)$params['%name%'], PDO::PARAM_%type%);
|
|
}
|
|
|
|
%varsTemplate_end%
|
|
|
|
%insert_id_start%
|
|
$this->db->insert_id
|
|
%insert_id_end%
|
|
|
|
%affected_rows_start%
|
|
$this->db->affected_rows
|
|
%affected_rows_end%
|
|
|
|
%fetch_row_start%
|
|
$result->fetch_array(MYSQLI_ASSOC)
|
|
%fetch_row_end%
|
|
|
|
%fetch_one_start%
|
|
$result->fetch_array(MYSQLI_NUM)[0] ?? null
|
|
%fetch_one_end%
|
|
|
|
%fetch_result_start%
|
|
isset($results['%key%']) ? $results['%key%'] : 'NULL'
|
|
%fetch_result_end%
|
|
|
|
%fetch_all_start%
|
|
$result->fetch_all(MYSQLI_ASSOC)
|
|
%fetch_all_end%
|