/Src/GetbdP.php

https://gitlab.com/developers.zombie/getBd · PHP · 311 lines · 158 code · 84 blank · 69 comment · 23 complexity · 52929d1203d73dcc2c1ed9f13daba18c MD5 · raw file

  1. <?php namespace Src;
  2. /* Copyright by Francisco Campos
  3. **********Año 2016***********
  4. ==================================
  5. *
  6. * CLASE PARA CONSULTAS
  7. * CON POSTGRES A LA BASE DE DATOS
  8. *
  9. *DRIVER POSTGRES
  10. *
  11. *
  12. *
  13. */
  14. use \Config\Connect\Postgre;
  15. class GetbdP extends Postgre{
  16. //atributos de la clase
  17. public $result = array();
  18. public $consulta;
  19. private $status = NULL;
  20. //metodo verificador de la consulta realizada retorna true y false
  21. protected function verificador($consulta){
  22. if ($consulta > 0){
  23. return true;
  24. }
  25. else{
  26. return false;
  27. }
  28. }
  29. // METOHOD QUE ACTIVA LOS HERRORES DE EJECUCION
  30. static public function Debug(){
  31. error_reporting(-1);
  32. ini_set('display_errors', '1');
  33. }
  34. //************************** INSERT SQL *********************************
  35. //validor de registro repetido
  36. public function check($var= array()){
  37. if (is_array($var))
  38. {
  39. $this->consulta = pg_query("SELECT * FROM $var[0] WHERE $var[1] = '$var[2]'")
  40. or die('Fatal Error: ' . pg_last_error());
  41. if(self::contador($this->consulta)){
  42. $this->status = true;
  43. return $this;//si se registro corectamente
  44. }else{
  45. $this->status = false;
  46. return $this;//si se registro corectamente RETORNO EL OBJETO EN SI
  47. }
  48. }
  49. else
  50. {
  51. $this->consulta = pg_query($var) //SI NO ES UN ARRAY EJECUTO LA CONSULTA NORMAL
  52. or die('Fatal Error: ' . pg_last_error());
  53. if(self::contador($this->consulta))
  54. {
  55. $this->status = false;
  56. return $this;//si se registro corectamente
  57. }
  58. else
  59. {
  60. $this->status = false;
  61. return $this;//si se registro corectamente
  62. }
  63. }
  64. }//FINAL DE METOHOD CHECK
  65. /*
  66. * METODO SAVE() PARA GUARDAR REGISTROS Y TAMBIEN COMPRUEBA REGISTRO
  67. *
  68. * SAVE(SQL , NULL) INSERT NORMAL
  69. * RETURN TRUE Y FALSE
  70. * SAVE(SQL , ARRAY()) INSERT CON VALIDACION DE DATOS
  71. * RETURN TRUE Y FALSE Y NULL PARA LA VALIDACION
  72. */
  73. public function save( $sql , $var = array())
  74. {
  75. // verificamos si status no esta vacia
  76. if (is_null($var))
  77. {
  78. $this->consulta = pg_query($sql )or die('Fatal Error: ' . pg_last_error());//errores de sintaxis
  79. //self::verificador($this->consulta);
  80. if($this->consulta){return true;}else{return false;}
  81. }
  82. else
  83. {
  84. $sQ = "SELECT * FROM $var[0] WHERE $var[1] = '$var[2]' LIMIT 1";
  85. $sq = explode(',',$sQ);
  86. $sql2 = implode($sq);
  87. $consulta = pg_query($sql2)or die('Fatal Error: ' . pg_last_error());
  88. if(pg_num_rows($consulta ) > 0)
  89. {
  90. return null; //si el nombre esta registrado
  91. }
  92. else{
  93. $this->consulta = pg_query($sql)or die('Fatal Error: ' . pg_last_error());
  94. // or die(mysql_error());//errores de sintaxis
  95. if($this->consulta){return true;}else{return false;}//si se registro corectamente
  96. }
  97. }//llave de else
  98. }//final del metodo insert
  99. // contador de los resultados de la consulta
  100. protected function contador($consulta){
  101. $contador = pg_num_rows($consulta);
  102. return $contador;
  103. }
  104. //************************** SELECT SQL *********************************
  105. // Metodo para seleccionar registros de la base de datos COMPLEJAS
  106. public function find($sql)
  107. {
  108. $this->consulta = pg_query($sql)
  109. or die('Fatal Error: ' . pg_last_error());
  110. if(self::contador($this->consulta)){
  111. return $this;//RETORNAMOS EL OBJETO PARA SER ENCADENADO
  112. }
  113. else{
  114. return $this; //RETORNAMOS EL OBJETO PARA SER ENCADENADO
  115. }
  116. }
  117. /*
  118. * FINDALL('TABLA')
  119. * RETORNA TODO LOS REGISTRO DE LA BASE DE DATOS
  120. * SELECIONADA EN EL METEDO
  121. */
  122. public function findAll($tabla)
  123. {
  124. $this->consulta = pg_query("SELECT * FROM $tabla")
  125. or die('Fatal Error: ' . pg_last_error());
  126. if(self::contador($this->consulta)){
  127. return $this;
  128. }
  129. else{
  130. return $this;
  131. }
  132. }
  133. /*
  134. * METODO
  135. * SHOWOBJ() ==> RETORNA UN OBJETO TIPO ARRAY ASOCIATIVO,
  136. * DEL RESULTADO DEL QUERY , VAR['CAMPO']
  137. */
  138. public function show()
  139. {
  140. while ($res=pg_fetch_assoc($this->consulta))
  141. {
  142. $this->result[] = $res; //REGRESA UN ARREGLO ASOCIATIVO
  143. }
  144. return $this->result;
  145. }
  146. /*
  147. * SHOWOBJ() ==> RETORNA UN OBJETO TIPO OBJETO,
  148. * DEL RESULTADO DEL QUERY
  149. */
  150. public function showObj()
  151. {
  152. while ($res=pg_fetch_object($this->consulta))
  153. {
  154. $this->result[] = $res;
  155. }
  156. return $this->result;
  157. }
  158. /*
  159. * SHOWOBJSON() ==> RETORNA UN OBJETO JSON
  160. */
  161. public function showObJson()
  162. {
  163. while ($res=pg_fetch_object($this->consulta))
  164. {
  165. $this->result[] = $res;
  166. }
  167. return json_encode($this->result);
  168. }
  169. //selecionar un registro unico de la base de datos
  170. public function findOne($var = array()){
  171. $this->consulta = pg_query("SELECT * FROM $var[0] WHERE $var[1] = $var[2] LIMIT 1")
  172. or die('Fatal Error: ' . pg_last_error());
  173. return $fila = pg_fetch_array($this->consulta);
  174. //var_dump($fila);
  175. }
  176. /*
  177. * GETID(['TABLA','CAMPO','VALOR'])
  178. * RETORNA EL ID DE LA CONSULTA
  179. */
  180. //************************** UPDATE SQL update(sql , 'update')*********************************
  181. // metodo para actulizar registros de la base de datos
  182. public function update($sql, $conf = '')
  183. {
  184. try {
  185. //seguro para evitar error en los metodos
  186. if( !is_null($conf) && $conf == 'update' ){
  187. //sql con el query a realizar
  188. $this->consulta = pg_query($sql);
  189. if($this->consulta ) return true;
  190. else return false;
  191. }else{
  192. throw new \Exception(' Upps !!');
  193. }
  194. }catch (\Exception $e) {
  195. echo 'Falta Algumentos ' . $e->getMessage();
  196. }
  197. }
  198. //************************** DELETE SQL remove(sql , 'delete')*********************************
  199. //metodo para borrar registros de la base de datos
  200. public function remove($sql , $conf = '' )
  201. {
  202. try {
  203. //seguro para evitar error en los metodos
  204. if( !is_null($conf) && $conf == 'delete' ){
  205. $this->consulta = pg_query($sql);
  206. if($this->consulta ) return true;
  207. else return false;
  208. }else{
  209. throw new \Exception(' Upps !!');
  210. }
  211. }catch (\Exception $e) {
  212. echo 'Falta Algumentos ' . $e->getMessage();
  213. }
  214. }
  215. //VALIDAR DE QUERY
  216. static public function Valid( $var )
  217. {
  218. //seguro para evitar error en los metodos
  219. //y la inyeccion de sql malo
  220. return pg_escape_string($var);
  221. }
  222. /*
  223. * REAL_SQL(SQL)==> RETORNA TRUE O FALSE
  224. * METODO QUE VERIFICA EL SQL INGRESADO
  225. * POR SEGURIDAD DEL LA LIBRERIA
  226. */
  227. }//final de clase postgres