Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] (conexion-mysql)scripts-tuto-01

Estas en el tema de (conexion-mysql)scripts-tuto-01 en el foro de PHP en Foros del Web. Hola amigos les cuento , la intencion con la que he creado este tema no es mas que critiquen mi codigo , sugieran cosas nuevas ...
  #1 (permalink)  
Antiguo 03/02/2012, 15:30
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
(conexion-mysql)scripts-tuto-01

Hola amigos les cuento , la intencion con la que he creado este tema no es mas que critiquen mi codigo , sugieran cosas nuevas , cosas que crees que faltan o que sobran , añadir seguridad , opiniones de cualquier tipo ya sea mala o buena y esa es la idea conseguir mejorar el codigo

este es mi primer script de muchos que ire subiendo a medida que vaya creando mi web , con esto quiero ayudar a toda la gente que ande nueva o despistada y quiera ir aprendiendo poco a poco (yo tambien aprendere y es lo que busco ampliar mis conocimientos),o que quiera colaborar o que este aburrida y no sepa que hacer jajaja o lo que sea , por lo tanto tambien sera como un tutorial scrip mejora , script mejora asi tema por tema paso a paso , podras ir encontrando todos los temas respectos a esto en el buscador del foro con la etiqueta scripts-tuto

- todos los que aporten algo añadire su nick en el codigo como colaborador

Comenzamos tuto 01 - conexion mysql


conexion.php llamaremos a este archivo

Código PHP:
Ver original
  1. <?php
  2.  
  3. // * Archivo de conexion mysql version 1.0
  4.  
  5. // * Futuros colaboradores
  6.  
  7. // Establecemos la conexion meiante la funcion Connection()
  8.  
  9.     function Connection(){
  10.        
  11.    
  12.     $Connection = array(
  13.     'server' => 'localhost',            // * Nombre del servidor    * var $Connection['server']
  14.     'username' => 'pruebas',            // * Nombre del usuario     * var $Connection['username']
  15.     'password' => 'pruebas'             // * Password del usuario   * var $Connection['password']
  16.     ) ;
  17.  
  18.  
  19.     // * Establecemos la conexion * var $Sql
  20.    
  21.     $Sql = @mysql_connect( $Connection['server'] , $Connection['username'] , $Connection['password'] );
  22.    
  23.    
  24.     // * Comprobamos si se establecio la conexion  , en caso de false mostramos mensaje de error
  25.    
  26.     if(!$Sql){
  27.        
  28.     return exit(strip_tags(strtolower('error al conectar con el servidor'))) ;
  29.  
  30.     }
  31.    
  32.    
  33.     // * Seleccionamos el conjunto de caracteres  
  34.  
  35.     $charset = mysql_set_charset('utf8',$Sql) ;
  36.    
  37.    
  38.     // * Comprobamos si se establecio el conjunto de caracteres  , en caso de false mostramos mensaje de error
  39.    
  40.     if(!$charset){
  41.        
  42.     return exit(strip_tags(strtolower('no se pudo establecer el conjunto de caracteres'))) ;
  43.        
  44.     }
  45.    
  46.    
  47.     // * Comprobamos si la conexion esta activa
  48.    
  49.     $Reconex = mysql_ping($Sql);
  50.            
  51.     if(!$Reconex){
  52.        
  53.     return exit(header('location:'.$_SERVER['PHP_SELF'].'')) ;
  54.        
  55.     }
  56.    
  57.    
  58.     // * Finalizamos funcion
  59.    
  60.     return ;
  61.    
  62.     }
  63.    
  64.    
  65. // * Seleccionamos la base de datos medienate la funcion Database($Database) , $db = la base de datos a seleccionar
  66.    
  67.     function Database($db){
  68.        
  69.        
  70.     $Connection = array(
  71.     'database' => array(
  72.     1 => 'commetwork',                  // * Base de datos 1        * var $Connection['database'][1]
  73.     2 => 'base2'                        // * Base de datos 2        * var $Connection['database'][2]
  74.     )) ;
  75.    
  76.    
  77.     // * Establecemos la conexion * var $Selectdb
  78.    
  79.     $Selectdb = @mysql_select_db( $Connection['database'][$db] ) ;
  80.    
  81.    
  82.     // * Comprobamos si se selecciono la base de datos  , en caso de false mostramos mensaje de error
  83.    
  84.     if(!$Selectdb){
  85.        
  86.     return exit(strip_tags(strtolower('error al seleccionar base de datos'))) ;
  87.    
  88.     }
  89.    
  90.    
  91.     // * Finalizamos funcion
  92.    
  93.     return ;
  94.    
  95.     }
  96.    
  97.    
  98. // * Cerramos la conexion mediante la funcion CloseConnection()
  99.  
  100.     function CloseConnection(){
  101.        
  102.        
  103.     // * Comprobamos si se cerro exitosamente la conexion activa , en caso de false mostramos mensaje de error 
  104.    
  105.     if(!@mysql_close()){
  106.        
  107.     return exit(strip_tags(strtolower('error al desconectar'))) ;
  108.        
  109.     }
  110.    
  111.    
  112.     // * Finalizamos funcion
  113.    
  114.     return ;
  115.    
  116.     }
  117.    
  118.    
  119.     // * Ejemplos
  120.    
  121.     // * Primero, seleccionaremos la funcion Connection() para activar la conexion
  122.     // * Segundo, llamaremos a la funcion Database($db) y le pasaremos el valor de $db = 1 o 2
  123.     // * Tercero, Cerramos la conexion mediante la funcion CloseConnection()
  124.    
  125.    
  126.     // * <?php
  127.     // * Connection();
  128.     // * $db = 1;
  129.     // * Database($db);
  130.     // * aqui hariamos las consultas
  131.     // * CloseConnection();
  132.     // * ?>
  #2 (permalink)  
Antiguo 03/02/2012, 15:46
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: (conexion-mysql)scripts-tuto-01

1 - es completamente innecesario el uso de strip_tags si la fuente de la cadena no es externa

2 - ¿No es más practico pasar el Numero de base de datos como argumento de la función conexión que tener otra función Database()?

3 - La instancia de los Resource_id de la conexión se establece dentro de la función, no sale de ella (no existe variable global o retorno de la misma) por lo tanto realmente se utiliza como conexión por defecto, esto representa problemas cuando se pretenden usar conexiones diferentes

4 - la función Database solo aplicaría para la conexión por defecto, tal cual se indicó en el punto anterior

5 - ¿por que no usar POO con PDO?
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 03/02/2012, 16:05
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: (conexion-mysql)scripts-tuto-01

aplicando tus sugerencias

1 - estoy de acuerdo
2 - estoy de acuerdo
4 3 - funcion database ya ha sido eliminada , no pretendo usar conexiones diferentes es cierto que no retorna y me baso en:

link_identifier

La conexión MySQL. Si el identificador de enlace no se especifica, el último enlace abierto por mysql_connect() es asumido. Si no se encuentra dicho enlace, la función intentará establecer un nuevo enlace como si mysql_connect() fuese invocado sin parámetros. Si no se encuentra o establece una conexión, un error de nivel E_WARNING es generado.

5 - me cuesta un poco todavia no me he metido en POO

asi dejo el codigo para quien le quiera echar un vistazo

Código PHP:
Ver original
  1. <?php
  2.          
  3. // * Archivo de conexion mysql version 1.0
  4.          
  5. // * Futuros colaboradores
  6.          
  7. // Establecemos la conexion mediante la funcion Connection($db)
  8.          
  9. function Connection($db){
  10.                
  11.            
  12.             $Connection = array(
  13.             'server' => 'localhost',            // * Nombre del servidor    * var $Connection['server']
  14.             'username' => 'pruebas',            // * Nombre del usuario     * var $Connection['username']
  15.             'password' => 'pruebas' ,           // * Password del usuario   * var $Connection['password']
  16.             'database' => array(
  17.             1 => 'base1',                       // * Base de datos 1        * var $Connection['database'][1]
  18.             2 => 'base2'                        // * Base de datos 2        * var $Connection['database'][2]
  19.             )        
  20.             ) ;
  21.          
  22.          
  23.             // * Establecemos la conexion * var $Sql
  24.            
  25.             $Sql = @mysql_connect( $Connection['server'] , $Connection['username'] , $Connection['password'] );
  26.            
  27.            
  28.             // * Comprobamos si se establecio la conexion  , en caso de false mostramos mensaje de error
  29.            
  30.             if(!$Sql){
  31.                
  32.             return exit('error al conectar con el servidor') ;
  33.          
  34.             }
  35.            
  36.            
  37.             // * Seleccionamos el conjunto de caracteres  
  38.          
  39.             $charset = @mysql_set_charset('utf8') ;
  40.            
  41.            
  42.             // * Comprobamos si se establecio el conjunto de caracteres  , en caso de false mostramos mensaje de error
  43.            
  44.             if(!$charset){
  45.                
  46.             return exit('no se pudo establecer el conjunto de caracteres') ;
  47.                
  48.             }
  49.            
  50.            
  51.             // * Comprobamos si la conexion esta activa
  52.            
  53.             $Reconex = @mysql_ping();
  54.                    
  55.             if(!$Reconex){
  56.                
  57.             return exit(header('location:'.$_SERVER['PHP_SELF'].'')) ;
  58.                
  59.             }
  60.            
  61.            
  62.             // * Establecemos la conexion * var $Selectdb
  63.            
  64.             $Selectdb = @mysql_select_db( $Connection['database'][$db]) ;
  65.            
  66.            
  67.             // * Comprobamos si se selecciono la base de datos  , en caso de false mostramos mensaje de error
  68.            
  69.             if(!$Selectdb){
  70.                
  71.             return exit('error al seleccionar base de datos') ;
  72.            
  73.             }
  74.            
  75.  
  76.             // * Finalizamos funcion
  77.            
  78.             return ;
  79.            
  80.             }
  81.      
  82.            
  83.            
  84. // * Cerramos la conexion mediante la funcion CloseConnection()
  85.          
  86. function CloseConnection(){
  87.                
  88.                
  89.             // * Comprobamos si se cerro exitosamente la conexion activa , en caso de false mostramos mensaje de error
  90.            
  91.             if(!@mysql_close()){
  92.                
  93.             return exit('error al desconectar') ;
  94.                
  95.             }
  96.            
  97.            
  98.             // * Finalizamos funcion
  99.            
  100.             return ;
  101.            
  102.             }
  103.            
  104.            
  105.      
  106.            
  107.            
  108.             // * <?php
  109.             // * $db = 1; * base de datos
  110.             // * Connection($db); * conexion
  111.             // * Consultas
  112.             // * CloseConnection(); * cerrar conexion
  113.             // * ?>

gracias maycolalvarez

Última edición por webankenovi; 05/02/2012 a las 11:54
  #4 (permalink)  
Antiguo 05/02/2012, 13:24
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: (conexion-mysql)scripts-tuto-01

al final lo dejo asi

Código PHP:
Ver original
  1. <?php
  2.          
  3. // * Archivo de conexion mysql version 1.0
  4.          
  5. // * Futuros colaboradores
  6.          
  7. // Establecemos la conexion
  8.          
  9.            
  10.             $Connection = array(
  11.             'server' => 'localhost',            // * Nombre del servidor    * var $Connection['server']
  12.             'username' => 'pruebas',             // * Nombre del usuario     * var $Connection['username']
  13.             'password' => 'pruebas' ,           // * Password del usuario   * var $Connection['password']
  14.             'database' => array(
  15.             1 => 'base1',                  // * Base de datos 1        * var $Connection['database'][1]
  16.             2 => 'base2'                        // * Base de datos 2        * var $Connection['database'][2]
  17.             )        
  18.             ) ;
  19.          
  20.          
  21. // * Establecemos la conexion
  22.            
  23. $Sql = @mysql_connect( $Connection['server'] , $Connection['username'] , $Connection['password'] );
  24.            
  25.            
  26.             // * Comprobamos si se establecio la conexion  , en caso de false mostramos mensaje de error
  27.            
  28.             if(empty($Sql)){
  29.                
  30.             exit('error al conectar con el servidor') ;
  31.          
  32.             }
  33.            
  34.            
  35. // * Seleccionamos el conjunto de caracteres  
  36.          
  37. $charset = @mysql_set_charset('utf8',$Sql) ;
  38.            
  39.            
  40.             // * Comprobamos si se establecio el conjunto de caracteres  , en caso de false mostramos mensaje de error
  41.            
  42.             if(empty($charset)){
  43.                
  44.             exit('no se pudo establecer el conjunto de caracteres') ;
  45.                
  46.             }
  47.            
  48.  
  49. // * Comprobacion de conexion
  50.            
  51. $Reconex = @mysql_ping($Sql);
  52.            
  53.            
  54.             // * Comprobamos si la conexion esta activa , en caso de false mostramos mensaje de error
  55.                    
  56.             if(empty($Reconex)){
  57.                
  58.             exit(header('location:'.$_SERVER['PHP_SELF'].'')) ;
  59.                
  60.             }
  61.            
  62.            
  63. // * Establecemos la conexion
  64.            
  65. $Selectdb = @mysql_select_db( $Connection['database'][1],$Sql) ;
  66.            
  67.            
  68.             // * Comprobamos si se selecciono la base de datos  , en caso de false mostramos mensaje de error
  69.            
  70.             if(empty($Selectdb)){
  71.                
  72.             exit('error al seleccionar base de datos') ;
  73.            
  74.             }
  75.            
  76.            
  77. // * Cerramos la conexion
  78.  
  79. function CloseConnection($Sql){
  80.            
  81. $Close = @mysql_close($Sql);
  82.            
  83.            
  84.             // * Comprobamos si se cerro exitosamente la conexion activa , en caso de false mostramos mensaje de error
  85.            
  86.             if(empty($Close)){
  87.                
  88.             return exit('error al desconectar') ;
  89.                
  90.             }
  91.            
  92.             return exit('desconectado') ;
  93.            
  94.             }?>
  #5 (permalink)  
Antiguo 05/02/2012, 17:11
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: (conexion-mysql)scripts-tuto-01

Pésima idea el ir usando @, el hecho de que no se muestre el error no quiere decir que no exista, es mejor capturar el error al estar dejando que el log de Apache cresca a cada rato, aparte, muchísimo mas optimo eh informativo usar or die(mysql_error()) que solo indicar que se ah producido un error
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #6 (permalink)  
Antiguo 06/02/2012, 11:50
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: (conexion-mysql)scripts-tuto-01

1 - a lo referente a

Pésima idea el ir usando @, el hecho de que no se muestre el error no quiere decir que no exista, es mejor capturar el error al estar dejando que el log de Apache cresca a cada rato,

como ves cada variable tiene su verificacion empty con su mensaje de error , es decir si una varibale falla por ejemplo mysql_connect salta el exit y no deja continuar por lo cual el log de apache no va creciendo ,

2 a lo referente a

muchísimo mas optimo eh informativo usar or die(mysql_error()) que solo indicar que se ah producido un error

yo en realidad los mensajes de error solo son temporales ya que aun no he pensado en como manejar los errores y guardarlos es tan solo orientativo , en el futuro supongo que usare mysql_errno and mysql_error y los guardo en un log , y no solo indico que se ha producido un error si no tambien de que puede ser como error al seleccionar la base de datos obviamente el error estara en mysql_select_db o en los datos del nombre de la bd

muchas gracias por tomar parte de tu tiempo en leer el tema y gracias por las sugerencias un saludo


he omitido mysql_ping y he añadido los die con mysql_errno() y mysql_error()
Código PHP:
Ver original
  1. <?php
  2.          
  3. // * Archivo de conexion
  4.          
  5. // * Valor de datos
  6.  
  7.            
  8.             $Connection = array(
  9.             'server' => 'localhost',             // * Nombre del servidor    * var $Connection['server']
  10.             'username' => 'pruebas',             // * Nombre del usuario     * var $Connection['username']
  11.             'password' => 'pruebas' ,            // * Password del usuario   * var $Connection['password']
  12.             'database' => 'base'                 // * Base de datos          * var $Connection['database']
  13.        
  14.             ) ;
  15.          
  16.          
  17. // * Establecemos la conexion
  18.            
  19. $Sql = mysql_connect( $Connection['server'] , $Connection['username'] , $Connection['password'] ) or die (mysql_errno() . ": " . mysql_error(). "\n");
  20.            
  21.            
  22. // * Seleccionamos el conjunto de caracteres  
  23.          
  24. if(!mysql_set_charset('utf8',$Sql)){
  25.            
  26.                
  27.             die( mysql_errno() . ": " . mysql_error(). "\n") ;
  28.                
  29.             }
  30.            
  31.            
  32. // * Establecemos la conexion con la base de datos
  33.            
  34. if(!mysql_select_db( $Connection['database'],$Sql)){
  35.            
  36.                
  37.             die( mysql_errno(). ": " . mysql_error(). "\n") ;
  38.                
  39.             }
  40.            
  41.  
  42. // * Cerramos la conexion
  43.  
  44. function CloseConnection($Sql){
  45.            
  46. if(!mysql_close($Sql)){
  47.            
  48.                
  49.             die( mysql_errno() . ": " . mysql_error(). "\n") ;
  50.                
  51.             }}?>

Última edición por webankenovi; 06/02/2012 a las 12:25

Etiquetas: scripts-tuto
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:37.