Realmente, trabajar con PHP no tendría
mucho sentido si no tuviéramos acceso a una base de datos. Actualmente,
en Internet la de Bases de datos mas extendida, hasta hace tres días era
MySQL, y ahora empieza a subir MariaDB. Sin embargo, a nivel de
programación, no nos debería preocupar, y ahora vamos a empezar a ver
como conectarnos a una base de datos y recuperar información desde PHP
Cuando instalasteis en vuestra maquina LAMP o XAMP según
las instrucciones que os deje, instalasteis también el motor de base de
datos MySQL o MariaDB, y un gestor sencillo y efectivo : phpMyAdmin
phpMyAdmin en una aplicación web
desarrollada en PHP que nos permite acceder a nuestra base de datos para
crear, modificar y borrar bases de datos, o tablas, así como
visualizar, crear modificar y borrar campos de tablas
Para invocarla, solo debéis teclear en vuestro navegador:
http://localhost/phpmyadmin
En este caso, le he indicado como nombre “pruebasPHP” y he pulsado el botón de crear.
automáticamente, nos conduce a una
pantalla para que podamos crear nuestra primera tabla, y así lo hacemos,
yo he creado la tabla “tb_usuarios” y le he indicado 6 campos
El primer campo (id) quiero que sea la
clave de la tabla, y que se genere automáticamente por incremento, por
lo que se lo debo indicar desplazándome a la derecha
y seleccionando “PRIMARY” y marcando AI (Autoincremento)
El siguiente paso será crear un
usuario, para no tener que trabajar con “root”, para ello, utilizando
phpMyAdmin, podemos seleccionar el nombre de la base de datos, y a
continuación, la pestaña “Privilegios”:
Y en la nueva pantalla,
solo pulsamos”Continuar” y phpMyAdmin crea el usuario
y accedereis al motor con el nuevo usuario.
Creando una conexion con PHP
A continuación, vamos a establecer una conexión con nuestra base de datos desde PHP, para poder leer y grabar registros.
Lo primero de todo, dejamos escrito en algún sitio los datos de conexión que son :
- el nombre del servidor, que si esta en la misma maquina, sera localhost
- el nombre de usuario. el nombre que hemos creado antes,:”pruebasPHP”
- la contraseña de ese usuario, que es “pruebas”
- el nombre de la base de datos a la que me quiero conectar, que es “midb”
Como podéis imaginar, es muy delicado que alguien ajeno pueda acceder
a esta información, por eso lo he dejado en un archivo aparte que he
llamado “mysqli.inc.php” y lo ideal es que estuviera en un directorio
que no fuera accesible desde la web
Para realizar la conexión:
include("mysqli.inc.php");
try{
$strCon="mysql:host=$cfg_servidor;dbname=$cfg_basephp1";
$conn = new PDO($strCon, $cfg_usuario, $cfg_password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}catch(PDOException $e){
echo "strCon: ".$strCon."
";
echo "cfg_usuario: ".$cfg_usuario."<br>";
echo "cfg_password: ".$cfg_password."<br>";
echo "ERROR: " . $e->getMessage();
}
Incluyo el modulo donde guarde los datos, y realizo la conexión, estando atento a los errores.
Si todo ha ido bien,puedo hacer la lectura, en este caso coy a leer
de la tabla tb_usuarios el registro que tiene en la columna “usuario” el
valor “miguel”
$sql = $conn->prepare('SELECT * FROM tb_usuarios WHERE usuario = :Nombre');
$sql->execute(array('Nombre' => "miguel"));
$resultado = $sql->fetchAll();
echo "Lista de datos obtenidos<br>";
foreach ($resultado as $row) {
echo $row["id"];
echo "-".$row["nombre"];
}
Observad,que en el “prepare” dejo una orden sql con un parámetro
“:Nombre”. y al dar la orden de “execute”, le indico por medio de un
array el valor de los posibles parámetros que haya dejado pendiente.
En “$resultado” obtengo un array con todos los registros que cumplan
la condición, y lo que hago a continuación, es enviarlos al navegador
utilizando el bucle “foreach”
Aunque este código funciona, no deberíamos considerarlo definitivo,
ya que nos obligaría a repetir un montón de lineas, en todas las paginas
donde necesitaramos conectarnos.
El el siguiente articulo, describimos como podemos hacer un código
para generar un objeto conexión,que podremos llamar en todas nuestras
paginas, y que se encargara del dialogo con la Base de datos
No hay comentarios:
Publicar un comentario