Skip to content

Instantly share code, notes, and snippets.

@phpfiddle
Created August 9, 2017 06:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save phpfiddle/a135bd0b068f3bf8523fe86f15cb01ff to your computer and use it in GitHub Desktop.
Save phpfiddle/a135bd0b068f3bf8523fe86f15cb01ff to your computer and use it in GitHub Desktop.
[ Posted by Alfertson Cedano ] PDO query sin consultas preparadas
<?php
/**
*
* Consulta con PDO mediante query
*
* Notas:
* - Los require indicados solo sirven para este ejemplo
* - La consulta SQL y el resultado son sólo para mostrar un ejemplo ,
* cada uno debe adaptarla a sus necesidades
*
**/
require_once "dBug!.php";
require "util/public_db_info.php";
/**
*
* 1. CREAR EL OBJETO DE CONEXIÓN A LA BASE DE DATOS
* Creamos una instancia de PDO mediante new
* pasando al constructor las credenciales de conexión:
* - $dsn: cadena de conexión
* - $user_name: nombre de usuario
* - $pass_word: contraseña de conexión a la BD
* Nota: Este es un ejemplo básico de conexión
* se recomienda tener una clase dedicada a la conexión
* que sea usada en toda la aplicación
* Ejemplo: https://github.com/padrecedano/PHP-PDO
*
**/
$pdo = new PDO($dsn, $user_name, $pass_word);
/**
*
* 2. ESCRIBIR LA CONSULTA Y ENVIARLA
* a) En el caso de consultas que no manejen datos externos tales como criterios WHERE
* se pasará la consulta a PDO mediante el método query directamente
* b) Si la consulta usa datos externos, se recomienda usar consultas preparadas
* enviando por un lado la cadena SQL y por otro los datos para prevenir la Inyección SQL
* En este caso se procederá como indicado en a. por ser una consulta que no necesita ser preparada
*
**/
$sql = "SELECT * FROM books";
$result = $pdo->query($sql);
/**
*
* 3. RECUPERAR EL RESULTADO DE LA CONSULTA
* Se crea un array asociativo de los resultados usando fechtAll-> y se almacena en $arrDatos
* Hay varios métodos para recuperar y leer los datos, ver al respecto la documentación.
* En este caso almacenamos los resultados en una variable usando el método fetchAll,
* indicándole que queremos un array asociativo
*
**/
$arrDatos = $result->fetchAll(PDO::FETCH_ASSOC);
/**
*
* 4. VERIFICAR EL RESULTADO DE LA CONSULTA Y LEERLO
* Es importante señalar que en PDO, para verificar si hay valores
* usar rowCount() no es la práctica recomendada, porque esto se puede hacer
* verificando los datos mismos, ya que si no hay valores, el objeto devuelto por la consulta será FALSE
* por tanto, con verificar el valor de $arrDatos será suficiente
*
**/
if ($arrDatos)
{
/**
*
* 5. MOSTRAR LOS DATOS EN PANTALLA
* Si hay datos, construiremos una sola variable a la cual le iremos concatenando
* los diferentes valores contenido en el conjunto de resultados
* Nótese que hay elementos que se crean fuera del bucle y otros dentro
* la lógica de dicho procedimiento se sobre-entiende :)
*
**/
$strHtml="<table border='1'>";
$strHtml.= "<th>ID</th><th>TÍTULO</th>";
$strHtml.="<tbody>";
foreach ($arrDatos as $row)
{
$strHtml.= "<tr>";
$strHtml.= "<td>".$row["id"]."</td>";
$strHtml.= "<td>".$row["title"]."</td>";
$strHtml.= "</tr>";
}
$strHtml.="</tbody>";
$strHtml.="</table>";
echo $strHtml;
}else{
print_r("No se encontraron datos, verifique su conexión o la consulta enviada");
}
/**
*
* 6. CERRAR RECURSOS
* Cerramos el objeto de conexión si el caso lo requiere
* En PDO no es obligatorio (ver https://es.stackoverflow.com/a/50097/29967)
*
**/
$pdo = null;
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment