Está en la página 1de 20

UNIVERSIDAD TÉCNICA DE AMBATO

FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL


CARRERA DE TELECOMUNICACIONES- Modulo: Comunicaciones Avanzadas
Docente: Ing Santiago Manzano

CONEXIÓN BASE DE DATOS - PHP

MYSQL INTERFAZ GRAFICA

1.- Para poder utilizar phpmyAdmin dentro de nuestro servidor, descargaremos de la página
oficial, ingresamos al siguiente enlace “ https://www.phpmyadmin.net/downloads/ ”, y
descargamos el que posee una extensión.tar.gz que son para entornos UNI, en este caso para
Redhat o Centos.

2.- Enviaremos el archivo a nuestro servidor a través del programa FileZilla:


UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES- Modulo: Comunicaciones Avanzadas
Docente: Ing Santiago Manzano

3.- Verificamos dentro del servidor que se encuentre el archivo .gz

4.- Utilizando el siguiente comando podremos descomprimir los archivos.


Nota: verificar el nombre del archivo

1. tar -xvf phpMyAdmin-5.1.1-all-languages.tar.gz


UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES- Modulo: Comunicaciones Avanzadas
Docente: Ing Santiago Manzano

5.- verificamos que el archivo se encuentre descomprimido

6.- Cambiamos de nombre para que podamos utilizarlo dentro del url y no tengamos que colocar
todo el nombre:

1. mv phpMyAdmin-5.1.1-all-languages phpMyadmin

7.- Verificamos si podemos ingresar a la página con el siguiente enlace.


UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES- Modulo: Comunicaciones Avanzadas
Docente: Ing Santiago Manzano

8.- De esta manera podremos utilizar la base de datos dentro de nuestro servidor, para poder
ingresar a la base de datos colocaremos el usuario root y la contraseña con la que ingresamos a
nuestra máquina virtual, así podremos ingresar y estar listos para utilizar la base de datos.

Nota: Dentro del siguiente manual no se especificará del funcionamiento de MySQL ya que estos
fueron trabajados en otros módulos.

CREACION DE USUARIO Y BASE DE DATOS:

1.- Hemos ingresado a la base de Datos como un usuario root, y no sería factible usarlo de esta
manera, por seguridad.

2.- Nos colocamos en la pestaña Cuentas de Usuarios, y hacemos clic en Agregar cuenta de Usuario.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES- Modulo: Comunicaciones Avanzadas
Docente: Ing Santiago Manzano

3.- Llenamos con los datos necesarios para la creación de una cuenta, y le damos clic en Continuar
en la parte final de la página.

4.- Crearemos una base de datos con el nombre “sensor”, donde albergaremos todos los datos
necesarios, en este caso, con un ID, temperatura, humedad, distancia:
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES- Modulo: Comunicaciones Avanzadas
Docente: Ing Santiago Manzano

5.- Crearemos una tabla con el nombre datos, esto lo haremos con código SQL en la pestaña SQL.

6.- El código SQL es el siguiente:

1. CREATE TABLE
2. datos (
3. id INT PRIMARY KEY AUTO_INCREMENT,
4. temperatura DOUBLE,
5. humedad DOUBLE,
6. distancia DOUBLE);
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES- Modulo: Comunicaciones Avanzadas
Docente: Ing Santiago Manzano

7.- Observaremos que la tabla fue creada, con las columnas necesario y el identificador ID para
poder dar el nombre a cada fila.

8.- Nos colocamos en la parte izquierda y hacemos clic en Nueva para luego dar seleccionar en
Cuentas de usuarios, para asignar la tabla de datos que vamos a usar.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES- Modulo: Comunicaciones Avanzadas
Docente: Ing Santiago Manzano

9.- Seleccionaremos la base de datos que vamos a utilizar, en este caso seria sensor, para que el
usuario solo pueda usar esta base de datos y finalizamos con el botón continuar.

10.- Luego le daremos todos los privilegios del usuario con esta base de datos.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES- Modulo: Comunicaciones Avanzadas
Docente: Ing Santiago Manzano

11.- Le damos clic en continuar y obtendremos este mensaje

12.- Saldremos de la sesión e ingresaremos con el usuario creado y su contraseña:


UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES- Modulo: Comunicaciones Avanzadas
Docente: Ing Santiago Manzano

13.- Si todos lo pasos se siguieron de forma correcta dentro de este usuario solo encontraremos la
base de datos que vamos a utilizar, de esta manera protegemos nuestra base de datos para no
ingresar en modo root, y dañemos alguna base de datos o configuración.

CONEXIÓN BASE DE DATOS:

1.- Dentro del aula virtual descargaremos un archivo llamado formulariophp.


UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES- Modulo: Comunicaciones Avanzadas
Docente: Ing Santiago Manzano

2.- Abrimos esta carpeta dentro de Visual Studio Code, y visualizaremos el archivado llamado
config.inc.php. Su código será el siguiente:

1. <?php
2.
3. define( "DIR_RAIZ", $_SERVER['DOCUMENT_ROOT'] );
4. define( "DIR_INC", DIR_RAIZ . "/includes/" );
5.
6. define( "HOST", "http://" . $_SERVER['HTTP_HOST'] );
7. define( "DIR_IMG", HOST . "/images/" );
8.
9. define( "MYSQL_HOST", "localhost" );
10. define( "MYSQL_USER", "john" );
11. define( "MYSQL_PASSWD", "12345" );
12. define( "MYSQL_DBNAME", "sensor" );
13. define( "MYSQL_DEBUG", "false" );
14.
15. define( "TMPDIR", DIR_RAIZ . "/tmp" );
16. session_save_path( TMPDIR );
17.
18. echo $_SERVER['DOCUMENT_ROOT']."<br>";
19. echo DIR_RAIZ."<br>";
20. echo TMPDIR."<br>";
21. echo HOST."<br>";
22. echo DIR_INC."<br>";
23. echo DIR_IMG."<br>";
24. echo MYSQL_HOST;
25.
26. ?>

define — Define una constante con nombre.

__DIR__ hace alusión al directorio del archivo que se está ejecutando. Y si es usado dentro de un
include, devuelve el directorio del archivo incluido. Al ser una palabra reservada luego del __
podremos colocar diferentes nombres.

$_SERVER es un array que contiene información, tales como cabeceras, rutas y ubicaciones de
script. Las entradas de este array son creadas por el servidor web. Dentro de estos podremos
encontrar los siguientes elementos que pueden estar disponibles, los que vamos a utilizar son:

'DOCUMENT_ROOT'

El directorio raíz de documentos del servidor en el cual se está ejecutando el script actual, según
está definida en el archivo de configuración del servidor.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES- Modulo: Comunicaciones Avanzadas
Docente: Ing Santiago Manzano

'HTTP_HOST'

Contenido de la cabecera Host: de la petición actual, si existe.

1. define( "DIR_RAIZ", $_SERVER['DOCUMENT_ROOT'] );


2. define( "DIR_INC", DIR_RAIZ . "/includes/" );
3.
4. define( "HOST", "http://" . $_SERVER['HTTP_HOST'] );
5. define( "DIR_IMG", HOST . "/images/" );

En la línea 1 le damos un nombre a la dirección raíz del servidor, y donde vamos a apuntar para la
ubicación de todos nuestros archivos

La línea 2 y 5 establecen otros directorios donde se encuentran incluidas carpetas.

La línea 4 no indica el nombre de nuestro dominio.

- Datos Mysql

1. define( "MYSQL_HOST", "localhost" );


2. define( "MYSQL_USER", "john" );
3. define( "MYSQL_PASSWD", "12345" );
4. define( "MYSQL_DBNAME", "sensor" );
5. define( "MYSQL_DEBUG", "false" );

En estas líneas estamos nombrando los datos necesarios con la información de la base datos
creada anteriormente donde:

En la línea 10 el usuario, la línea 11 la contraseña de ese usuario, y en la línea 12 tendremos el


nombre de la base de datos.

- Información

18. echo $_SERVER['DOCUMENT_ROOT']."<br>";


19. echo DIR_RAIZ."<br>";
20. echo TMPDIR."<br>";
21. echo HOST."<br>";
22. echo DIR_INC."<br>";
23. echo DIR_IMG."<br>";
24. echo MYSQL_HOST;
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES- Modulo: Comunicaciones Avanzadas
Docente: Ing Santiago Manzano

3.- En esta sección imprimiremos la información de los datos definidos con anterioridad para
verificar que las ubicación y direcciones de las carpetas se encuentren de forma correcta,
enviaremos todos los documentos a nuestro servidor de web 3:

4.- Abriremos en nuestro navegador la siguiente dirección “


http://www.avanzadaslemajohn3.com/config.inc.php “ y encontraremos las diferentes
direcciones, aquí podremos verificar si estamos apuntando bien a nuestras rutas en caso de que
existan algunos errores en el futuro:

5.- Una vez verificado comentaremos las líneas de impresion:

1. <?php
2.
3. define( "DIR_RAIZ", $_SERVER['DOCUMENT_ROOT'] );
4. define( "DIR_INC", DIR_RAIZ . "/includes/" );
5.
6. define( "HOST", "http://" . $_SERVER['HTTP_HOST'] );
7. define( "DIR_IMG", HOST . "/images/" );
8.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES- Modulo: Comunicaciones Avanzadas
Docente: Ing Santiago Manzano

9. define( "MYSQL_HOST", "localhost" );


10. define( "MYSQL_USER", "john" );
11. define( "MYSQL_PASSWD", "12345" );
12. define( "MYSQL_DBNAME", "sensor" );
13.
14. /* echo $_SERVER['DOCUMENT_ROOT']."<br>";
15. echo DIR_RAIZ."<br>";
16. echo HOST."<br>";
17. echo DIR_INC."<br>";
18. echo DIR_IMG."<br>";
19. echo MYSQL_HOST;*/
20.
21. ?>

6.- Una vez que hayas insertado todos los datos correctos de la base de datos como usuario,
contraseña y la base de datos, y además verificando que estamos apuntando bien a las direcciones
de acceso de los archivos y de la carpeta includes, vamos a ingresar al archivo control.php, donde
tendremos el siguiente código:

1. <?php
2.
3. include_once( $_SERVER['DOCUMENT_ROOT'] . "/config.inc.php" );
4. include_once(DIR_INC . "class.mysql.inc.php");
5. $bd = new class_mysql();
6. $bd->insertar($_GET['temp'] , $_GET['hum'], $_GET['dis']);
7.
8. ?>
9.

Este archivo nos permite conectarnos con el archivo config,inc.php.

La línea 3 llama con la sentencia include_once llamara al archivo config.inc.php.

La línea 5 llamara al archivo class.mysql.inc.php que se encuentra dentro de la carpeta includes.

Si tenemos todas las direcciones bien configuradas en config.inc.php no tendremos ningún


problema, entonces la línea 5 y 6 nos permite instanciar los objetos para realizar las consultas,
para estos nos dirigimos a la carpeta includes y abrimos el archivo class.mysql.inc.php que tendrá
el siguiente código.

1. <?php
2.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES- Modulo: Comunicaciones Avanzadas
Docente: Ing Santiago Manzano

3. class class_mysql
4. {
5. var $MySQL_host;
6. var $MySQL_user;
7. var $MySQL_passwd;
8. var $MySQL_dbname;
9.
10. var $MYSQL_debug; // Si es true (defecto) presenta mensajes de error
11. // var $error_msg; // Contiene el mensaje de error a enviarse al navegador
12. var $connection;
13.
14. function class_mysql()
15. {
16. $this->MySQL_host = MYSQL_HOST;
17. $this->MySQL_user = MYSQL_USER;
18. $this->MySQL_passwd = MYSQL_PASSWD;
19. $this->MySQL_dbname = MYSQL_DBNAME;
20. $this->MYSQL_debug = MYSQL_DEBUG;
21. // Creates a connection to the database
22. $this->connection = $this->connect();
23.
24. }
25.
26.
27. function connect()
28. {
29. // Sets the default False value for returning
30. $result = false;
31.
32. // stablishes a connection with MySQL server in $connection variable
33. $connection = new mysqli( $this->MySQL_host, $this->MySQL_user, $this-
>MySQL_passwd, $this->MySQL_dbname);
34.
35. // handles the possible error in connection
36. if ( !connection)
37. {
38. // sends an error message on FALSE connection
39. $error_msg = "<center><h2>FALLO AL CONECTAR A LA BASE DE DATOS.<BR>informe a
l administrador del sitio<br>";
40. $error_msg .= "Error: " . mysqli_error( $connection ) . "<h2></center>";
41. $this->send_error_msg( $error_msg );
42. }
43. /*else
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES- Modulo: Comunicaciones Avanzadas
Docente: Ing Santiago Manzano

44. {
45. // assigns the $dbname database to the $connection connection
46. mysql_select_db( $this->MySQL_dbname, $connection );
47. $result = $connection;
48. }*/
49.
50. // returns the resource assigned for further use or FALSE on error
51. return $connection;
52. }
53.
54.
55. function send_error_msg( $error_msg )
56. {
57. if ( $this->MYSQL_debug )
58. echo $error_msg;
59. // exit;
60. }
61.
62. function query ( $sentence )
63. {
64. // Initializes the returning variable
65. $result = false;
66.
67. // handles the possible error in connection
68. if ( $this->connection )
69. {
70.
71. $result = $this->connection->query( $sentence);
72.
73. // handles a possible error in sentence or execution
74. if ( !$result )
75. {
76.
77. //sends an error message when error in SQL sentence execution happen
78. $error_msg = "<center><h3>Fallo al ejecutar la sentencia<h3><h4>$sentenc
e<br>";
79. $error_msg .= "Error: " . mysqli_error( $this-
>connection ) . "<h2></center>";
80. $error_msg .= "</h4></center>";
81. $this->send_error_msg( $error_msg );
82. }
83. // Closes the current connection to MySQL
84. // mysql_close ( $connection );
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES- Modulo: Comunicaciones Avanzadas
Docente: Ing Santiago Manzano

85. }
86.
87. return $result;
88. }
89.
90. //
91. // Gets the maximum value of the Id field in $table table
92. //
93.
94.
95.
96. function insertar($t,$p,$h,$f)
97. {
98. $bd = new class_mysql();
99. $sql = "INSERT INTO valores (id, Temperatura, Presion, Humedad,Fecha) VALUES (NULL,
'".$t."', '".$p."', '".$h."'".$f."')";
100. return $bd->query( $sql );
101. }
102.
103. function insertar1($t,$p,$h,$f)
104. {
105. $bd = new class_mysql();
106. $sql = "INSERT INTO almacenes (id, Tienda, Ventas,Fecha) VALUES (NULL, '".$t."', '".
$p."', '".$f."')";
107. return $bd->query( $sql );
108. }
109.
110. function listar( )
111. {
112. $bd = new class_mysql();
113. $sql = "SELECT * FROM almacenes";
114. return $bd->query( $sql );
115. }
116.
117.
118. } // closes the class definition
119. ?>

Analizaremos el siguiente código:


UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES- Modulo: Comunicaciones Avanzadas
Docente: Ing Santiago Manzano

Dentro de esta función se encuentran todas las variables que hemos creado en config.inc, en la
línea 14 tenemos la función class_mysql() en donde se encuentran las variables creadas en
config.inc

En la línea 27 tenemos la función connect() en donde procederemos a la conexión con la base


de datos, en la línea 33 veremos el comando mysqli utilizado, en el cual si existe algún error no se
conectara a la base.

En la línea 62 tendremos la función query ( $sentence ) que nos permite ejecutar los
comandos propios de la base de datos,

A partir de la línea 96 vamos a poder insertar, consultar, eliminar, etc dentro de la base de datos,
entonces podremos modificarlo de acuerdo a nuestra base datos, en nuestro caso crearemos una
nueva función y la colocaremos al final, asegurarse de que no exista otra función con el mismo
nombre:

1. function insertar($t,$p,$h) //parametros de las funcion, valores de entrada


2. {
3. $bd = new class_mysql();
4. $sql = "INSERT INTO datos (id, temperatura, humedad, distancia) VALUES (NULL, '".$t.
"', '".$p."', '".$h."')";
5. return $bd->query( $sql );
6. } // Insertaremos dentro de nuestra base de datos la informacion

7.- Guardamos y subimos los archivos a nuestro servidor.

8.- Luego dentro de nuestro servidor en el archivo formulario, ingresaremos los datos a través del
método GET, la cual se dirigirá al archivo control.php para que se pueda ejecutar la sentencia.

1. <?php
2.
3. include_once( $_SERVER['DOCUMENT_ROOT'] . "/config.inc.php" );
4. include_once(DIR_INC . "class.mysql.inc.php");
5. $bd = new class_mysql();
6. $bd->insertar($_GET['temp'] , $_GET['hum'], $_GET['dis']); // datos obtenidos del formulario
7.
8. ?>

NOTA: Asegurarse que guardamos los archivos y que se suban de forma correcta, además de
siempre verificar dentro de nuestro servidor los archivos.

Estos son los archivos que vamos a enviar


UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES- Modulo: Comunicaciones Avanzadas
Docente: Ing Santiago Manzano

9.- Enviamos los datos desde http://www.avanzadaslemajohn3.com/formulario.html


UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE TELECOMUNICACIONES- Modulo: Comunicaciones Avanzadas
Docente: Ing Santiago Manzano

10.-Si no existe ningún problema la página estará en blanco, en caso de que exista una error se
mostrara un mensaje de conexión:

11.- Revisaremos la base de datos para verificar los datos enviados:

De esta manera hemos realizado la conexión y el envió de datos, en las siguientes practicas
utilizaremos todo lo que hemos visto hasta este punto, asegurarse que todas estas prácticas estén
funcionando de forma correcta.

También podría gustarte