1 | <?php |
||
25 | class QueryGenerator |
||
26 | { |
||
27 | /** |
||
28 | * Construye una consulta select desde una lista de parametros. |
||
29 | * |
||
30 | * where: condiciones where |
||
31 | * order: criterio de ordenamiento |
||
32 | * fields: lista de campos |
||
33 | * join: joins de tablas |
||
34 | * group: agrupar campos |
||
35 | * having: condiciones de grupo |
||
36 | * limit: valor limit |
||
37 | * offset: valor offset |
||
38 | * @param array $params parametros de consulta select |
||
39 | * @param string $source |
||
40 | * @param string $type |
||
41 | * @return string |
||
42 | */ |
||
43 | public static function select($source, $type, array $params) |
||
65 | |||
66 | /** |
||
67 | * Permite construir el WHERE, GROUP BY, HAVING y ORDER BY de una consulta SQL |
||
68 | * en base a los parámetros $params. |
||
69 | * |
||
70 | * @param array $params |
||
71 | * @return string[] |
||
72 | */ |
||
73 | protected static function prepareParam(array $params) |
||
82 | |||
83 | /** |
||
84 | * Genera una sentencia where. |
||
85 | * |
||
86 | * @param string $where |
||
87 | * @return string |
||
88 | */ |
||
89 | protected static function where($where) |
||
93 | |||
94 | /** |
||
95 | * Genera una sentencia GROUP. |
||
96 | * |
||
97 | * @param string $group |
||
98 | * @return string |
||
99 | */ |
||
100 | protected static function group($group) |
||
104 | |||
105 | /** |
||
106 | * Genera una sentencia HAVING. |
||
107 | * |
||
108 | * @param string $having |
||
109 | * @return string |
||
110 | */ |
||
111 | protected static function having($having) |
||
115 | |||
116 | /** |
||
117 | * Genera una sentencia ORDER BY. |
||
118 | * |
||
119 | * @param string $order |
||
120 | * @return string |
||
121 | */ |
||
122 | protected static function order($order) |
||
126 | |||
127 | /** |
||
128 | * Construye una consulta INSERT. |
||
129 | * |
||
130 | * @param LiteRecord $model Modelo a actualizar |
||
131 | * @param array $data Datos pasados a la consulta preparada |
||
132 | * @return string |
||
133 | */ |
||
134 | public static function insert(LiteRecord $model, array &$data) |
||
152 | |||
153 | /** |
||
154 | * Agrega un campo a para generar una consulta preparada para un INSERT. |
||
155 | * |
||
156 | * @param string $field Nombre del campo |
||
157 | * @param LiteRecord $model valor del campo |
||
158 | * @param array $data array de datos |
||
159 | * @param array $values array de valores |
||
160 | * @return void |
||
161 | */ |
||
162 | protected static function insertField($field, LiteRecord $model, array &$data, array &$values) |
||
173 | |||
174 | /** |
||
175 | * Permite conocer si la columna debe definirse como nula. |
||
176 | * |
||
177 | * @param LiteRecord $model |
||
178 | * @param string $field |
||
179 | * @return bool |
||
180 | */ |
||
181 | protected static function haveValue(LiteRecord $model, $field) |
||
185 | |||
186 | /** |
||
187 | * Construye una consulta UPDATE. |
||
188 | * |
||
189 | * @param LiteRecord $model Modelo a actualizar |
||
190 | * @param array $data Datos pasados a la consulta preparada |
||
191 | * @return string |
||
192 | */ |
||
193 | public static function update(LiteRecord $model, array &$data) |
||
209 | |||
210 | /** |
||
211 | * Generate SQL for DELETE sentence. |
||
212 | * |
||
213 | * @param string $source source |
||
214 | * @param string $where condition |
||
215 | * @return string SQL |
||
216 | */ |
||
217 | public static function deleteAll($source, $where) |
||
221 | |||
222 | /** |
||
223 | * Generate SQL for COUNT sentence. |
||
224 | * |
||
225 | * @param string $source source |
||
226 | * @param string $where condition |
||
227 | * @return string SQL |
||
228 | */ |
||
229 | public static function count($source, $where) |
||
233 | |||
234 | /** |
||
235 | * Agrega un campo a para generar una consulta preparada para un UPDATE. |
||
236 | * |
||
237 | * @param string $field Nombre del campo |
||
238 | * @param mixed $value valor |
||
239 | * @param array $data array de datos |
||
240 | * @param array $set array de valores |
||
241 | * @return void |
||
242 | */ |
||
243 | protected static function updateField($field, $value, array &$data, array &$set) |
||
252 | |||
253 | /** |
||
254 | * Construye una consulta UPDATE. |
||
255 | * |
||
256 | * @todo ¿Hay que escapar los nombres de los campos? |
||
257 | * @param string $model nombre del modelo a actualizar |
||
258 | * @param array $fields campos a actualizar |
||
259 | * @param array $data Datos pasados a la consulta preparada |
||
260 | * @param string|null $where |
||
261 | * @return string |
||
262 | */ |
||
263 | public static function updateAll($model, array $fields, array &$data, $where) |
||
277 | |||
278 | /** |
||
279 | * Ejecuta una consulta. |
||
280 | * |
||
281 | * @thow KumbiaException |
||
282 | * @param string $type tipo de driver |
||
283 | * @param string $query_function nombre de funcion |
||
284 | * @return mixed |
||
285 | */ |
||
286 | public static function query($type, $query_function) |
||
296 | } |
||
297 |