PHP MySql Class


/ Published in: PHP
Save to your folder(s)



Copy this code and paste it in your HTML
  1. <?php
  2. class MySQL{
  3. //variables conexion con la base de datos / servidor
  4. private $servidor; //nombre de host
  5. private $base_de_dades; // nombre de la base de datos
  6. private $usuari; // nombre de usuario base de datos
  7. private $contrasenya; //contraseña acceso base de datos
  8. //variables fin conexion con la base de datos / servidor
  9.  
  10. //conexion con el servidor
  11. private $connect; //guarda la conexion con el MySQL host.
  12. private $persistente; //boolean para saber si la conexion sera persistente o no.
  13. //fin conexion con el servidor
  14.  
  15. //consultas base de datos
  16. private $consulta; //guarda la consulta MySQL.
  17. private $resultat; //guarda resultado de la consulta MySQL.
  18. private $numfilas; //numero de filas de una consulta MySQL.
  19. private $numcampos; //numero de capos de una consulta MySQL.
  20. //fin consultas base de datos
  21.  
  22. //creacion consulta INSERT / UPDATE
  23. private $array_key; //guarda el nombre de los campos MySQL.
  24. private $array_valor; //guarda valores associados a los campos MySQL.
  25.  
  26. private $nombre_campo; //guarda los campos preparados para la consulta MySQL.
  27. private $valor_campo; //guarda los valores preparados para la consulta MySQL.
  28. //fin creacion consulta INSERT / UPDATE
  29.  
  30. //variables adicionales
  31. private $error; //guarda el ultimo error generado.
  32. //fin variables adicionales
  33.  
  34.  
  35. function __construct($servidor, $usuari , $contrasenya , $base_de_dades = "", $persist = False){
  36. //Damos valores a las variables de conexion (por defecto o no).
  37. //Determinamos si la conexion sera persistente o no.
  38. $this -> servidor = ( strlen($servidor) > 0 )? $servidor : "localhost";
  39. $this -> usuari = ( strlen($usuari) > 0 )? $usuari : "";
  40. $this -> contrasenya = ( strlen($contrasenya) > 0 )? $contrasenya : "";
  41. $this -> base_de_dades = ( strlen($base_de_dades) > 0 )? $base_de_dades : "";
  42. $this -> persistente = $persist;
  43. $this -> error = Null;
  44. }
  45.  
  46. function Conectar(){
  47. //Establece la conexion con el servidor de la base de datos.
  48. if( $this -> persistente ){
  49. //Esta conexion la cierra el servidor (mysql_close no funciona).
  50. $this -> connect = @mysql_pconnect( $this -> servidor, $this -> usuari, $this -> contrasenya );
  51. }else{
  52. $this -> connect = @mysql_connect( $this -> servidor, $this -> usuari, $this -> contrasenya );
  53. }
  54.  
  55. //Verifica si la conexion se ha echo con el servidor.
  56. if( !$this -> connect ){
  57. $this -> error = mysql_error();
  58. return( False );
  59. }else{
  60. if( strlen($this -> base_de_dades) > 0 ){$this -> SeleccionarBaseDatos();}
  61. return( $this -> connect );
  62. }
  63. }
  64.  
  65. //Selecciona la base de datos a la cual se tiene que conectar.
  66. //Comprueba que se a hecho correctamente.
  67. function SeleccionarBaseDatos( $bd = "", $con = null ){
  68. if( strlen($bd) > 0 ){$this -> base_de_dades = $bd;}
  69. if( isset($con) ){$this -> connect = $con;}
  70.  
  71. if( !mysql_select_db($this -> base_de_dades, $this -> connect) ){
  72. $this -> error = mysql_error();
  73. return( False );
  74. }else{
  75. return( True );
  76. }
  77. }
  78.  
  79. //Envia una consulta al servidor de la base de datos.
  80. //Compruba que la consulta se ha resulto con exito.
  81. function Consulta( $consulta_exe, $con = null ){
  82.  
  83. //compruba que la conulsta enviada sea valida.
  84. if( empty($consulta_exe) ){
  85. $this -> error = "La consulta a tramitar no es valida.<br />";
  86. return( False );
  87. }
  88.  
  89. //Comprueba que la consulta se ha echo.
  90. $this -> consulta = ( $con != null )? @mysql_query( $consulta_exe, $con ) : @mysql_query( $consulta_exe, $this -> connect );
  91. if(!$this -> consulta){
  92. $this -> error = mysql_error();
  93. return( False );
  94. }else{
  95. return( $this -> consulta );
  96. }
  97. }
  98.  
  99. function UltimoID(){
  100. //Devuelve el ultimo ID generado por un INSERT
  101. //en un campo de auto incremento.
  102. return( mysql_insert_id() );
  103. }
  104.  
  105. function VerDatos( $ver_consulta, $tipo = "" ){
  106. //Devuelve el resultado/las filas de la consulta
  107. //que se ha echo a la base de datos.
  108. if( !$ver_consulta ){
  109. $this -> error = "Parametro invalido enviado para mostrar los datos.";
  110. return(False);
  111. }
  112.  
  113. if( $tipo == "MYSQL_ASSOC" ){$this -> resultat = @mysql_fetch_array( $ver_consulta, MYSQL_ASSOC );}
  114. if( $tipo == "MYSQL_NUM" ){$this -> resultat = @mysql_fetch_array( $ver_consulta, MYSQL_NUM );}
  115. if( $tipo == "MYSQL_BOTH" ){$this -> resultat = @mysql_fetch_array( $ver_consulta, MYSQL_BOTH );}
  116. if( $tipo == "" ){$this -> resultat = @mysql_fetch_object( $ver_consulta );}
  117.  
  118. //Comprueba si la consulta ha tenido existe.
  119. if($this -> resultat){
  120. return( $this -> resultat );
  121. }
  122. else{
  123. $this -> error = mysql_error();
  124. return( False );
  125. }
  126. }
  127.  
  128. function NumFilas( $con = Null )
  129. {
  130. //Devuelve el numero de filas de la consulta.
  131. $con = ( isset($con) )? $con : $this -> consulta;
  132. $this -> numfilas = @mysql_num_rows( $con );
  133.  
  134. if( !$this -> numfilas )
  135. {
  136. $this -> error = mysql_error();
  137. return( false );
  138. }else{
  139. return( $this -> numfilas );
  140. }
  141. }
  142.  
  143. function NumCampos( $con = Null )
  144. {
  145. //Devuelve el numero de campos de la consulta.
  146. $con = ( isset($con) )? $con : $this -> consulta;
  147. $this -> numcampos = mysql_num_fields( $con );
  148.  
  149. if( !$this->numcampos ){
  150. $this -> error = mysql_error();
  151. return( False );
  152. }else{
  153. return( $this->numcampos );
  154. }
  155. }
  156.  
  157. function crearDB( $db ){
  158. if(function_exists("mysql_create_db")){
  159. if(!@mysql_create_db($db)){
  160. $this -> error = mysql_error();
  161. return(False);
  162. }else{
  163. return(True);
  164. }
  165. }else{
  166. $sql = "CREATE DATABASE `".$db."`";
  167. if( !$this -> Consulta($sql) ){return( False );}
  168. else{return( True );}
  169. }
  170. }
  171.  
  172. function InsertarValoresSQL( $array_insert, $campo_insert ){
  173. //Genera la consulta MySQL que se envia al servidor (INSERTAR).
  174. //Se le pasa una array asociativa y convierte
  175. //los key's de la array en los campos que corresponden
  176. //a la base de datos y los valores respectivos a valores
  177. //associados a cada campo.
  178.  
  179. $this -> array_key = array_keys( $array_insert );
  180. $this -> array_valor = $array_insert;
  181.  
  182. for($i = 0;$i < count($this->array_valor);$i++){
  183. $this -> array_valor[$this -> array_key[$i]] = (is_numeric($this -> array_valor[$this -> array_key[$i]]))? $this -> array_valor[$this -> array_key[$i]] : "'" . $this -> limpiar($this -> array_valor[$this -> array_key[$i]]) . "'";
  184. }
  185.  
  186. for($i = 0;$i < count($this->array_key);$i++){
  187. $this->array_key[$i] = "`" . $this->array_key[$i] . "`";
  188. }
  189.  
  190. $this->nombre_campo = implode( ",", $this -> array_key);
  191. $this->valor_campo = implode( ",", $this -> array_valor);
  192.  
  193. $sql = "INSERT INTO `" . $campo_insert."` (" . $this -> nombre_campo . ")";
  194. $sql .= " VALUES(" . $this -> valor_campo . ");";
  195. return( $sql );
  196. }
  197.  
  198. function ActualizarValoresSQL( $nuevos_valores, $tabla, $where ){
  199. //Genera la consulta MySQL que se envia al servidor (ACTUALIZAR).
  200. //Se le pasa una array asociativa y convierte
  201. //los key's de la array en los campos que corresponden
  202. //a la base de datos y los valores respectivos a valores
  203. //associados a cada campo.
  204.  
  205. $this -> array_key = array_keys( $nuevos_valores );
  206. $this -> array_valor = $nuevos_valores;
  207.  
  208. for($ind = 0; $ind < count( $this -> array_key ); $ind++){
  209. $valores[$ind] = "`" . $this -> array_key[$ind] . "` = '" . $this->array_valor[$this -> array_key[$ind]] . "'";
  210. }
  211.  
  212. $valores = implode( ",", $valores );
  213.  
  214. $sql = "UPDATE `" . $tabla . "` SET " . $valores;
  215. $sql .= " WHERE " . $where . ";";
  216. return( $sql );
  217.  
  218. }
  219.  
  220. function VerError()
  221. {
  222. //Devuelve el ultimo error generado
  223. //si este existe.
  224. if( $this->error != Null ){
  225. return( $this->error );
  226. }
  227. else{
  228. return( False );
  229. }
  230. }
  231.  
  232. function limpiar($variable){
  233. //para escapar los caracteres especiales.
  234. else{$variable = mysql_real_escape_string(trim($variable));}
  235. return( $variable );
  236. }
  237.  
  238. function CerrarConexion()
  239. {
  240. //Cierra la conexion no-persistente con el servidor MySQL.
  241. if(!@mysql_close($this->connect)){
  242. $this->error = mysql_error();
  243. return( False );
  244. }else{
  245. return( True );
  246. }
  247. }
  248.  
  249. function LimpiarConsulta(){
  250. //Libera la memoria associoada a la variable donde se guarda la consulta.
  251. if(!@mysql_free_result($this->consulta))
  252. {
  253. $this->error = mysql_error();
  254. return( False );
  255. }else{
  256. return( True );
  257. }
  258. }
  259. }
  260.  
  261. $config = array();
  262. $config["MYSQL"]["SERVER"] = "127.0.0.1";
  263. $config["MYSQL"]["USER"] = "root";
  264. $config["MYSQL"]["PASS"] = "";
  265. $config["MYSQL"]["DATABASE"] = "web";
  266.  
  267. $mysql = new MySQL( $config["MYSQL"]["SERVER"], $config["MYSQL"]["USER"], $config["MYSQL"]["PASS"], $config["MYSQL"]["DATABASE"]);
  268. if( !$mysql -> Conectar() ){
  269. exit( $mysql -> VerError() );
  270. }
  271.  
  272. /*********************************
  273. * Una consulta a la base de datos
  274. *********************************/
  275. $sql = "SELECT `metatags`.`type`, `metatags`.`name`, `metatags`.`value` FROM `metatags`;";
  276. if( !($query = $mysql ->Consulta($sql)) ){
  277. exit( $mysql -> VerError() );
  278. }
  279.  
  280. while( $valor = $mysql -> VerDatos($query) ){
  281. echo "Meta Type: " . $valor -> type . "<br />";
  282. echo "Meta Name: " . $valor -> name . "<br />";
  283. echo "Meta value: " . $valor -> value . "<br />";
  284. echo "--------------------------------------------------------<br />";
  285. }
  286.  
  287. /*********************************
  288. * Insertar en una tabla
  289. *********************************/
  290. $table = "metatags";
  291. //$reg["nombre_campo_tabla"] = "valor_a_insertar";
  292. $reg["type"] = "name";
  293. $reg["name"] = "robots";
  294. $reg["value"] = "all";
  295.  
  296. $sql = $mysql ->InsertarValoresSQL( $reg, $table);
  297. echo $sql . "<br />";
  298. if( /*!$mysql -> Consulta($sql)*/ !true ){
  299. exit( $mysql -> VerError() );
  300. }
  301. else{
  302. echo "Rows insert into DB.<br />";
  303. }
  304.  
  305. /***************************************
  306. * Actualizar valores de una tabla tabla
  307. ***************************************/
  308. $table = "metatags";
  309. $where = "value = 'all' AND name = 'robots'";
  310. //$reg["nombre_campo_tabla"] = "valor_a_insertar";
  311. $reg["type"] = "name";
  312. $reg["name"] = "robots";
  313. $reg["value"] = "index";
  314.  
  315. $sql = $mysql->ActualizarValoresSQL( $reg, $table, $where );
  316. echo $sql . "<br />";
  317. if( !$mysql -> Consulta($sql) ){
  318. exit( $mysql -> VerError() );
  319. }
  320. else{
  321. echo "Rows updated.<br />";
  322. }
  323.  
  324. $mysql->LimpiarConsulta();
  325. $mysql->CerrarConexion();
  326. ?>

Report this snippet


Comments

RSS Icon Subscribe to comments

You need to login to post a comment.