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 array |
||
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) |
||
175 | |||
176 | /** |
||
177 | * Permite conocer si la columna debe definirse como nula. |
||
178 | * |
||
179 | * @param LiteRecord $model |
||
180 | * @param string $field |
||
181 | * @return bool |
||
182 | */ |
||
183 | protected static function haveValue(LiteRecord $model, $field) |
||
187 | |||
188 | /** |
||
189 | * Construye una consulta UPDATE. |
||
190 | * |
||
191 | * @param LiteRecord $model Modelo a actualizar |
||
192 | * @param array $data Datos pasados a la consulta preparada |
||
193 | * @return string |
||
194 | */ |
||
195 | public static function update(LiteRecord $model, array &$data) |
||
211 | |||
212 | /** |
||
213 | * Generate SQL for DELETE sentence. |
||
214 | * |
||
215 | * @param string $source source |
||
216 | * @param string $where condition |
||
217 | * @return string SQL |
||
218 | */ |
||
219 | public static function deleteAll($source, $where) |
||
223 | |||
224 | /** |
||
225 | * Generate SQL for COUNT sentence. |
||
226 | * |
||
227 | * @param string $source source |
||
228 | * @param string $where condition |
||
229 | * @return string SQL |
||
230 | */ |
||
231 | public static function count($source, $where) |
||
235 | |||
236 | /** |
||
237 | * Agrega un campo a para generar una consulta preparada para un UPDATE. |
||
238 | * |
||
239 | * @param string $field Nombre del campo |
||
240 | * @param mixed $value valor |
||
241 | * @param array $data array de datos |
||
242 | * @param array $set array de valores |
||
243 | * @return void |
||
244 | */ |
||
245 | protected static function updateField($field, $value, array &$data, array &$set) |
||
254 | |||
255 | /** |
||
256 | * Construye una consulta UPDATE. |
||
257 | * |
||
258 | * @todo ¿Hay que escapar los nombres de los campos? |
||
259 | * @param string $model nombre del modelo a actualizar |
||
260 | * @param array $fields campos a actualizar |
||
261 | * @param array $data Datos pasados a la consulta preparada |
||
262 | * @param string|null $where |
||
263 | * @return string |
||
264 | */ |
||
265 | public static function updateAll($model, array $fields, array &$data, $where) |
||
279 | |||
280 | /** |
||
281 | * Ejecuta una consulta. |
||
282 | * |
||
283 | * @thow KumbiaException |
||
284 | * @param string $type tipo de driver |
||
285 | * @param string $query_function nombre de funcion |
||
286 | * @return mixed |
||
287 | */ |
||
288 | public static function query($type, $query_function) |
||
298 | } |
||
299 |
This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.
Both the
$myVar
assignment in line 1 and the$higher
assignment in line 2 are dead. The first because$myVar
is never used and the second because$higher
is always overwritten for every possible time line.