Tag Archives: prepared statements

Prepared statements con MySQLi

Logo de MySQL

Hoy os mostraré cómo hacer prepared statements con MySQLi en PHP, de la misma forma que se hace puede hace en otros lenguages, como por ejemplo en Java.

Porqué un objeto MySQLi

La objeto mysql de PHP a fecha de hoy está obsoleto, su evolución fue el objeto MySQLi, que entre otras muchas mejoras, incluyo el montaje de prepared statements. Por otro lado , si lo prefieres puedes utilizar PDO.

Para qué utilizar prepared statements con MySQLi

Esta función de los prepared statements con MySQLi, se utiliza, entre otros casos, para evitar cualquier tipo de ataque de SQL Injection contra nuestra base de datos. Gracias a esta función , podemos montar una query filtrando en todo momento, cualquier tipo de input , ya sea del lado del cliente, o sacando nuestros inputs del lado del servidor.

Cómo utilizar prepared statements con MySQLi

Lo primero de todo es montar una conexión a nuestra base de datos con el objeto MySQLi de PHP.

A continuación, montamos el string que contendrá la query, poniendo el símbolo ‘?’ a todos aquellos campos que inputs que queramos filtrar mediante la función prepare

Después, introduciremos que tipo de inputs vamos a pasar como parámetros mediante la función bind_param, cómo por ejemplo strings, integer, double o blob, en el caso que mandemos datos que no son planos.

En el primer campo pasaremos uno a uno de que tipo es cada uno de los parámetros que vamos a pasarle a modo de string. Posteriormente, en el resto de los parámetros, pasaremos las variables, estén declaradas ya o no, para poder manipularlas después.

Por último, solo nos queda ejecutar el statement y recorrer como queramos el resultado,en este ejemplo, al igual que hago habitualmente en mi código, utilizo el método fetch() de MySQLi.

Por ultimo, tened en cuenta que para liberar memoria, hay que cerrar el statement y la base de datos. Como pincelada final, si la query que habéis ejecutado ha sido “pesada”, es decir, que ha consumido muchos recursos del sistema, podéis utilizar la función free() del statement para liberar la memoria consumida.

Os invito , a que utilicéis los prepared statements con MySQLi ya que, a pesar de que al inicio de su utilización puede ser un poco pesado, con el tiempo vereis el potencial que tiene esta clase y la acabareis utilizando habitualmente.Por ejemplo, también lo podéis utilizar en sentencias insert update y delete.

Fuente: w3schools

1 Star2 Stars3 Stars4 Stars5 Stars (Sin puntuaciones)
Cargando…

Copyright © 2017. Powered by WordPress & Romangie Theme.