Como conectar php con mysql

Como conectarte a MySQL con PHP. 5 líneas de código explicadas para todos!

bases de datos conexión php PDO consultas sql

Leer de base de datos es sencillo, deberás tener nociones de SQL, al menos básicas, para empezar a extraer la información almacenada en tus tablas.

La ejecución de consultas con PDO sigue siempre un mismo procedimiento, ya sea leer, actualizar, borrar o crear, donde solo se diferenciará en el resultado devuelto (0 o más filas). En este tutorial en concreto, me voy a centrar en la lectura de las filas almacenadas en tus tablas. Además voy utilizar la clase PDO por su versatilidad y opciones de seguridad.

Lo primero, conexión a base de datos

Para empezar siempre nos tenemos que haber conectado a la base de datos. Esto lo haremos creando un objeto de clase PDO. En este ejemplo voy a conectarme a MySQL instalado localmente, con una la base de datos llamada prueba con el usuario root y sin contraseña.

$objetoPDO = new PDO('mysql:host=localhost;dbname=prueba','root', '');

En $objetoPDO tengo un objeto de clase PDO. Con este objeto podremos preparar las consultas como veremos a continuación y olvidarnos de cerrar la conexión.

Preparación de consultas para leer datos

Una vez creado el objeto de la clase PDO ya podemos empezar a lanzar(ejecutar) las consultas que queramos, tantas como sea necesario en nuestro código. Por ejemplo, para leer de una tabla usuario con las columnas nombreemail y que en la columna apellidos aparezca "perez" haremos:

Ahora, si la consulta es correcta tenemos un objeto de la clase PDOStatement en nuestra variable $objetoPDOStatement, en el caso de un posible error de sintaxis en la consulta (por ejemplo haber escrito mal SELECT o WHERE) el valor de la variable será false.

$query = "SELECT nombre, email FROM usuario WHERE apellidos LIKE '%perez%'";

$objetoPDOStatement = $objetoPDO->prepare($query);

if($objetoPDOStatement ¡= false){
            //la consulta es buena
}else{
            Echo ‘Error, la consulta no es válida’.
}

Ejecución de la consulta

Tenemos la consulta preparada, esto quiere decir que se ha validado por posibles errores de sintaxis SQL, pero para obtener el resultado de la consulta tendremos que ejecutarla:

$exito = $objetoPDOStatement->execute();

La variable $exito contiene un booleano que indica si la consulta ha ido bien o mal, en este caso el posible error no sería de sintaxis SQL sino de haber escritor mal por ejemplo una columna de la tabla o una tabla inexistente. En el caso de que $exito sea true el objeto PDOStatement de la variable $objetoPDOStatement contendrá las filas resultado de la consulta. El siguiente código obtendría el array con las filas:

Al ejecutar el metodo fetchAll() de PDOStatement y asignar su valor de retorno en $arrayFilas, esta es un array con las filas producidas por el resultado de ejecutar la consulta SELECT anterior sobre nuestra base de datos en MySQL.

if($exito == true){
            $arrayFilas = $objetoPDOStatement->fetchAll();
}else{
            Echo “La consulta tiene errores”;
}

Ver datos de las filas devueltas por PDO

Ya casi hemos visto todo el proceso, en el caso de la consulta SELECT anterior yo sé que es muy probable que devuelva filas, por lo tanto voy a recorrer el array contenido en $arrayFilas y mostrar su contenido.

Como hemos dicho antes, cada fila resultado de nuestra base de datos MySQL obtenida en php con el método fetchAll() no es otra cosa que un array donde cada clave es el nombre de la columna, dentro de $arrayFilas tengo una matriz. Con el siguiente código ejemplo quedará más claro:

echo 'Usuarios totales resultado: '. sizeof($arrayFilas);
foreach($arrayFilas as $fila){
            echo 'Usuario con nombre: ' . $fila['nombre'] . ' email: ' . $fila['email'];
}

Sobre el autor

Javier Gómez Redactor en Srcodigofuente.es

Javier Gómez

Ingeniero técnico en informática de gestión. Desarrollador web freelance y profesor de desarrollo web a partes iguales. Testarudo autodidacta, creativo, perfeccionista y alma libre.

Cargando comentarios

Utilizamos "cookies" para información estadística. Si continúas navegando aceptas su uso.