Escolar Documentos
Profissional Documentos
Cultura Documentos
En esta ocasión mostraré cómo conectarse una base de datos MySQL con MySQLi en
PHP. Aunque lo cierto es que es algo muy básico, puede resultar un poco complicado hacer una
conexión “decente” cuando uno empieza en este mundo de PHP y bases de datos.
Yo uso Hostinger con PHP 5.5. La función “MySQLi” (mysql improved) se introdujo en PHP 4.1, así que
asegúrate de poseer una versión de PHP 4.1 o superior en tu servidor.
¿Cómo conectar con MySQL?
La base de datos
Como ya dije, yo uso Hostinger y me proveen de un creador de bases de datos con la posibilidad de
administrar la BB.DD con PHPMyAdmin (cosa que en este tutorial no será necesario). Así que lo que
haré es crear una base de datos con el nombre “tuto” y usuario con nombre “mmv“. Le doy como
contraseña “0123456“.
Lo primero que debemos hacer es crear un index.php y un archivo que incluiremos cada vez que
queramos hacer una conexión a la base de datos (yo lo llamé conexión.php). También debemos crear
un archivo de configuración (.ini) donde alojaremos los datos de conexión.
El archivo de configuración se puede crear con un bloc de notas, guardándolo con “nombre.ini”. En
mi caso, le puse como nombre “config.ini”.
Ahí, debemos escribir lo siguiente:
[database]
username = NOMBREDEUSUARIO
password= CONTRASEÑA
dbname = NOMBREDELABASEDEDATOS
Mi configuración es esta:
Claramente puede variar de un hosting a otro, o si estamos en localhost (p.ej. conectados con
XAMPP), etc.
Creando la conexión
En nuestro archivo “conexion.php” debemos crear una variable que tome los datos de nuestro
“config.ini”, después hacer la conexión y comprobar el estado de la misma.
Para ello, debemos decirle al documento que vamos a ingresar código PHP. Esto se hace de la
siguiente manera:
<?php
?>
Este código debe ir en el documento, el cual debe estar totalmente vacío. Las etiquetas HTML
(doctype, html, head, body, etc.) que puedan generar algunos editores de texto (como Dreamweaver)
deben ser eliminadas.
A continuación debemos crear una variable con el valor parse_ini_file y la ruta del archivo “.ini” para
que PHP tome los datos de la conexión. Recuerda siempre poner la ruta correcta para el archivo,
o de lo contrario no podrá realizarse la conexión. Yo, como tengo el “conexion.php” y el
“config.ini” en la misma carpeta, debo escribir simplemente el nombre del archivo de configuración,
así:
<?php
// Carga la configuración
$config = parse_ini_file('config.ini');
?>
El nombre de la variable (config) da igual, pero debemos usar siempre el mismo para obtener los
datos del array. Esto se explica más adelante.
Ahora debemos crear una variable que almacene la conexión con MySQLi, de esta manera:
<?php
// Carga la configuración
$config = parse_ini_file('config.ini');
La función mysqli_connect toma los valores de “config.ini” como un array, y los comprende así:
‘localhost’ (el servidor); va con dos comillas simples porque es una instrucción “en texto plano”,
o sea, que no toma el valor de ninguna otra variable.
$config[‘valor’] (array); dentro de la variable config (o sea, dentro del “config.ini”) tenemos
diferentes valores, y cada valor tiene un nombre: “username”, “password” y “dbname”. Para
obtener cada valor, hay que poner el nombre de la variable (por ejemplo, username). Esta no
llevan comillas.
Una vez creada la conexión, debemos comprobar si es correcta o falla. Para eso, bastará con una
simple condicional.
<?php
// Carga la configuración
$config = parse_ini_file('config.ini');
Entonces; comprobamos si la conexión es falsa, y en caso de serlo, debe mostrar un error. En caso
de no serlo, conectará. Para el ejemplo he colocado un else que indica que, si la conexión está bien,
debe mostrar un mensaje diciendo “Conectado a la base de datos”, pero realmente no debería
haber un else en la condicional (o lo mostrará cada vez que alguien acceda a la página).
El uso de === en la condición indica que debe ser idéntico a false, y no igual (que sería ==). Más
información al respecto aquí.
Conectando…
Ahora debemos añadir la conexión a nuestro archivo “index.php”. Esto debemos hacerlo cada vez
que necesitemos datos de la BB.DD, y lo único necesario es un require en PHP. Esto lo pondremos
encima de la declaración de DOCTYPE de HTML.
<?php
require('conexion.php');
?>
En mi caso, Dreamweaver me mostrará qué fichero está incluido en cada archivo que lo requiera
(ya sea PHP, CSS, JS, etc.).
Ahora subiré los archivos por FTP, y acá tenemos el resultado:
Para comprobar que muestra los errores cuando la conexión falla, como ejemplo, voy a poner una
contraseña incorrecta en “config.ini” (añado un cero al final) y lo subo de nuevo al hosting.
Aquí vemos dos errores: uno que muestra por defecto PHP (el que está arriba de “Ha habido un
error”), y otro que nosotros le pedimos que muestre (el que está abajo).
Seguridad
Si accedemos a la ruta del “config.ini”, es probable que nos encontremos la configuración para
acceder a la base de datos (en texto plano), lo cual es un fallo de seguridad muy grave.
Para evitar esto, debemos modificar el archivo .htaccess que nos provee nuestro hosting.
Con FileZilla podemos acceder a este archivo, y haciendo click en “Ver/Editar” se nos creará una
copia temporal del archivo en nuestro sistema para poder, valga la redundancia, verlo y editarlo.
A mí se me abre en Dreamweaver, pero se puede configurar con qué programa abrir los ficheros,
yendo a “Edición > Opciones…”, y en la sección “Edición de archivo” elegimos el .exe de nuestro
editor haciendo click en “Usar editor personalizado”.
# Do not remove this line or mod_rewrite rules and search engine friendly URLs will stop working
RewriteBase /
RewriteEngine on
<FilesMatch "^\.(ht)|\.(ini|phps|log|sh|bak|1|old|swp)$|(\.*~)$">
Order Allow,Deny
Deny from all
</FilesMatch>
Ahora lo guardo en la raíz de mi carpeta local, y lo subo por FTP a la raíz de “public_html”.
Como no tengo configuradas las páginas de error, no puedo ver el 403 (me redirecciona a un 404 de
Hostinger), pero acá se aprecia que el .htaccess hace su trabajo:
Hecho.
Ya estamos conectados a la base de datos y con seguridad. Al menos de momento (nunca se sabe
quién intentará efectuar un XSS o una inyección SQL, o algo así).
Conclusión:
Si estás empezando con PHP + MySQL, estos son los primerísimos pasos.
Probablemente haga una secuela de este tipo de entradas, tratando con PHP, SQL, PHPMyAdmin,
etc.
Comp á r t e lo:
Cargando...
Relacionado
PHP configuración MySQL MySQLi conectar conectar a base de datos
base de datos BB.DD SQL require config.ini FileZilla .htaccess 403 HTTP 403
15 comments
Responder
exelente hermano, ojala puedas hacer mas tutos y ojala sea de como
almacenar,mostrar datos recopilados en una database yaque no hay mucho de
mysqli(explicado de esta forma) en la internet
Responder
Responder
Responder
Responder
Alonso Buzano · marzo 12, 2016
Si es en Xamp para windows hay que editar el htacces o ese paso no se realiza?
Responder
Responder
Responder
Responder
buddy · abril 12, 2016
Responder
Responder
doblevidarp · diciembre 16
Responder
Rocanrol · diciembre 16
Es lo más sencillo que hay en desarrollo web LAMP. Ni siquiera usa clases.
Responder
Responder
Responder
Introduce aquí tu comentario...
Buscar …
Entradas recientes
Comentarios recientes
Archivos
mayo 2017
abril 2017
febrero 2017
enero 2017
diciembre 2016
agosto 2016
junio 2016
abril 2016
marzo 2016
febrero 2016
enero 2016
diciembre 2015
noviembre 2015
octubre 2015
agosto 2015
julio 2015
junio 2015
mayo 2015
abril 2015
febrero 2015
enero 2015
Categorías
Desarrollo Web
Diseño Gráfico
Informática
Sin categoría
Tutorial
Meta
Registrarse
Acceder
WordPress.com