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.
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
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.
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.
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
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.
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. ?>
__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'
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
- Datos Mysql
En estas líneas estamos nombrando los datos necesarios con la información de la base datos
creada anteriormente donde:
- Información
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:
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
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.
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. ?>
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 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:
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.
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:
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.