FREEDOM GLOBAL NET

¡¡Lo nunca visto!!

¡¡Lo nunca visto!!
Gana comisiones de por vida

miércoles, 15 de octubre de 2014

PHP-Las bases de datos

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
2014 09 30 19h32 09 PHP Las bases de datosy ya podéis indicar el usuario y la contraseña, que la primera vez, y para el acceso general, sera el usuario “root”, y la contraseña que indicárais durante la instalación de MySQL
2014 09 30 21h05 42 PHP Las bases de datosA continuación, podemos pulsar en la imagen que os indico a la izquiera, y nos aparece un formulario para crear una nueva base de datos.
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
2014 09 30 21h13 03 PHP Las bases de datosAl darle a continuar, nos aparece la pantalla para que indiquemos esos 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 derecha2014 09 30 21h17 09 PHP Las bases de datos
y seleccionando “PRIMARY” y marcando AI (Autoincremento)
2014 09 30 21h18 34 PHP Las bases de datosCuando termine, le puedo indicar “Grabar”, y nos creara la tabla. Si necesitamos mas campos, en lugar de “Grabar” le podemos indicar el numero de campos que queremos, y pulsar “Continuar”
 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”:
2014 10 01 20h23 02 PHP Las bases de datosEn la nueva pestaña marcamos”Agregar usuario”
2014 10 01 20h26 54 PHP Las bases de datos
Y en la nueva pantalla,
2014 10 01 20h29 50 PHP Las bases de datosintroducimos los datos del usuario, En “Servidor”, como solo quiero que ese usuario pueda trabajar local, indico “localhost”. Eso no significa que no pueda conectarse remotamente, por ejemplo, con phpmyadmin, o en una aplicación web, pero…el programa que lance las ordenes sobre mysql, deberá estar instalado en la misma maquina que mysql. En la practica, que no puede utilizar MySQL En la practica, que no puede utilizar el servidor SQL desde otra maquina por medio de TCP/IP
2014 10 01 20h33 50 PHP Las bases de datosPor ultimo, en la parte inferior tenemos la posibilidad de conceder a ese usuario permisos sobre TODAS las bases de datos de la instalación, y como no es necesario,no los marcamos.
solo pulsamos”Continuar” y phpMyAdmin crea el usuario
2014 10 01 20h38 22 PHP Las bases de datosSin embargo, veo que en la columna de “conceder” me ha quedado “no”…Eso significa que ese usuario no podría gestionar los permisos de otro usuario,y si queremos que pueda hacerlo, al final de la linea marcada, tengo “Editar privilegios”, pulso encima, y me aparece la pantalla de gestión.
2014 10 01 20h42 13 PHP Las bases de datosHemos terminado con el usuario, si queréis probarlo, podéis abrir un terminal y tecleais
y accedereis al motor con el nuevo usuario.
2014 10 01 20h49 38 PHP Las bases de datosen el prompt de “mysql”,podéis dar alguna ordenes como:
2014 10 01 20h53 24 PHP Las bases de datosy tras comprobar que hemos podido conectamos a la base de datos “midb”, hemos visto las tablas que tenia, y hemos visto también la estructura de la tabla, podemos cerrar la conexión mysql.

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”
2014 10 01 21h01 53 PHP Las bases de datos
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