Método PDO::prepare Obtener Resultados con Parametros

En el post Método PDO::query para obtener resultados con MySQL mostré como hacer un query y mostrar los resultados, ahora vamos a ir a algo un poco mas interesante que es obtener información basado en un ID de empleado. Nuestro objetivo es que con el ID del empleado nos muestre su nombre. La información será proporcionada a través de un campo de texto en una forma HTML.

Busqueda de Empleado

Nombre de Empleado:

Para el post utilizamos la Base de Datos creada en Método PDO::query para obtener resultados con MySQL, si aún no la tienes puedes visitar el post y descargar los archivos.

El método PDO::prepare() nos permite preparar un query con los datos que queremos enviar a este.

En vez de hacer un query concatenado como se hacía anteriomente en el MySQL antiguo:

Ahora vamos a utilizar Named Placeholders (Parametro con Nombre) que van a repesentar los valorque vamos a ligar. los Named Placedholders estan dentro de nuestro query y se escribe el nombre que queramos empezando con dos puntos (colon).

Entonces nuestro código para hacer el query y obtener los resultados es el siguiente:

PDO::PARAM_INT, es para ser mas explicito en los datos que les estamos enviado. Algunos tipos de datos que se manejan son:

Sin embargo no se ve ninguno para un punto flotante, por lo tanto el 3er argumento es opcional, así que lo puedes dejar sin argumento.

Si no queremos utilizar PDO::bindingParam podemos enviar la información directa a execute en forma de arrelgo:

Si esto te parecio mejor que te parece evitar incluso usar Named Placeholders y solo indicar con signo de pregunta.

Y para enviar los datos un método aún mas facil

De esta manera podemos ver algunos métodos para enviar parametros a través de PDO::prepare(). Los códigos donde se utiliza esto estos ejemplos son:

phpParameters-03.php

phpParameters-04.php

Como podemos observar existe varias formas para obtener información enviando parametros con PDO, mi forma personal de trabajar es con la versión simplificada, ya que me enfoco mas en logica que en estar poniendo nombre en los sql.

UPDATE – 29-May-2015

El siguiente código es para enseñar como extraer todos los datos de una fila. Ahora en vez de usar fetchColumn() utilizaremos fetch() para obtener la fila completa.

Como ya es costrumbre dejo los código fuente para que lo descarguen: