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. $this -> error = mysql_error();
  160. return(False);
  161. }else{
  162. return(True);
  163. }
  164. }else{
  165. $sql = "CREATE DATABASE `".$db."`";
  166. if( !$this -> Consulta($sql) ){return( False );}
  167. else{return( True );}
  168. }
  169. }
  170.  
  171. function InsertarValoresSQL( $array_insert, $campo_insert ){
  172. //Genera la consulta MySQL que se envia al servidor (INSERTAR).
  173. //Se le pasa una array asociativa y convierte
  174. //los key's de la array en los campos que corresponden
  175. //a la base de datos y los valores respectivos a valores
  176. //associados a cada campo.
  177.  
  178. $this -> array_key = array_keys( $array_insert );
  179. $this -> array_valor = $array_insert;
  180.  
  181. for($i = 0;$i < count($this->array_valor);$i++){
  182. $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]]) . "'";
  183. }
  184.  
  185. for($i = 0;$i < count($this->array_key);$i++){
  186. $this->array_key[$i] = "`" . $this->array_key[$i] . "`";
  187. }
  188.  
  189. $this->nombre_campo = implode( ",", $this -> array_key);
  190. $this->valor_campo = implode( ",", $this -> array_valor);
  191.  
  192. $sql = "INSERT INTO `" . $campo_insert."` (" . $this -> nombre_campo . ")";
  193. $sql .= " VALUES(" . $this -> valor_campo . ");";
  194. return( $sql );
  195. }
  196.  
  197. function ActualizarValoresSQL( $nuevos_valores, $tabla, $where ){
  198. //Genera la consulta MySQL que se envia al servidor (ACTUALIZAR).
  199. //Se le pasa una array asociativa y convierte
  200. //los key's de la array en los campos que corresponden
  201. //a la base de datos y los valores respectivos a valores
  202. //associados a cada campo.
  203.  
  204. $this -> array_key = array_keys( $nuevos_valores );
  205. $this -> array_valor = $nuevos_valores;
  206.  
  207. for($ind = 0; $ind < count( $this -> array_key ); $ind++){
  208. $valores[$ind] = "`" . $this -> array_key[$ind] . "` = '" . $this->array_valor[$this -> array_key[$ind]] . "'";
  209. }
  210.  
  211. $valores = implode( ",", $valores );
  212.  
  213. $sql = "UPDATE `" . $tabla . "` SET " . $valores;
  214. $sql .= " WHERE " . $where . ";";
  215. return( $sql );
  216.  
  217. }
  218.  
  219. function VerError()
  220. {
  221. //Devuelve el ultimo error generado
  222. //si este existe.
  223. if( $this->error != Null ){
  224. return( $this->error );
  225. }
  226. else{
  227. return( False );
  228. }
  229. }
  230.  
  231. function limpiar($variable){
  232. //para escapar los caracteres especiales.
  233. else{$variable = mysql_real_escape_string(trim($variable));}
  234. return( $variable );
  235. }
  236.  
  237. function CerrarConexion()
  238. {
  239. //Cierra la conexion no-persistente con el servidor MySQL.
  240. if([email protected]mysql_close($this->connect)){
  241. $this->error = mysql_error();
  242. return( False );
  243. }else{
  244. return( True );
  245. }
  246. }
  247.  
  248. function LimpiarConsulta(){
  249. //Libera la memoria associoada a la variable donde se guarda la consulta.
  250. {
  251. $this->error = mysql_error();
  252. return( False );
  253. }else{
  254. return( True );
  255. }
  256. }
  257. }
  258.  
  259. $config = array();
  260. $config["MYSQL"]["SERVER"] = "127.0.0.1";
  261. $config["MYSQL"]["USER"] = "root";
  262. $config["MYSQL"]["PASS"] = "";
  263. $config["MYSQL"]["DATABASE"] = "web";
  264.  
  265. $mysql = new MySQL( $config["MYSQL"]["SERVER"], $config["MYSQL"]["USER"], $config["MYSQL"]["PASS"], $config["MYSQL"]["DATABASE"]);
  266. if( !$mysql -> Conectar() ){
  267. exit( $mysql -> VerError() );
  268. }
  269.  
  270. /*********************************
  271. * Una consulta a la base de datos
  272. *********************************/
  273. $sql = "SELECT `metatags`.`type`, `metatags`.`name`, `metatags`.`value` FROM `metatags`;";
  274. if( !($query = $mysql ->Consulta($sql)) ){
  275. exit( $mysql -> VerError() );
  276. }
  277.  
  278. while( $valor = $mysql -> VerDatos($query) ){
  279. echo "Meta Type: " . $valor -> type . "<br />";
  280. echo "Meta Name: " . $valor -> name . "<br />";
  281. echo "Meta value: " . $valor -> value . "<br />";
  282. echo "--------------------------------------------------------<br />";
  283. }
  284.  
  285. /*********************************
  286. * Insertar en una tabla
  287. *********************************/
  288. $table = "metatags";
  289. //$reg["nombre_campo_tabla"] = "valor_a_insertar";
  290. $reg["type"] = "name";
  291. $reg["name"] = "robots";
  292. $reg["value"] = "all";
  293.  
  294. $sql = $mysql ->InsertarValoresSQL( $reg, $table);
  295. echo $sql . "<br />";
  296. if( /*!$mysql -> Consulta($sql)*/ !true ){
  297. exit( $mysql -> VerError() );
  298. }
  299. else{
  300. echo "Rows insert into DB.<br />";
  301. }
  302.  
  303. /***************************************
  304. * Actualizar valores de una tabla tabla
  305. ***************************************/
  306. $table = "metatags";
  307. $where = "value = 'all' AND name = 'robots'";
  308. //$reg["nombre_campo_tabla"] = "valor_a_insertar";
  309. $reg["type"] = "name";
  310. $reg["name"] = "robots";
  311. $reg["value"] = "index";
  312.  
  313. $sql = $mysql->ActualizarValoresSQL( $reg, $table, $where );
  314. echo $sql . "<br />";
  315. if( !$mysql -> Consulta($sql) ){
  316. exit( $mysql -> VerError() );
  317. }
  318. else{
  319. echo "Rows updated.<br />";
  320. }
  321.  
  322. $mysql->LimpiarConsulta();
  323. $mysql->CerrarConexion();
  324. ?>

Report this snippet


Comments

RSS Icon Subscribe to comments

You need to login to post a comment.