Manejo de conexiones PHP y MySQL

  • Autor Autor peque91
  • Fecha de inicio Fecha de inicio
P

peque91

Beta
Redactor
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Hoy venia a preguntarles de que manera conectan sus aplicaciones en php con mysql cuando necesitan usar bases de datos.

Yo empecé usando el plugin clásico de mysql que viene por defecto en cualquier servidor php pero últimamente he estado probando las librerías PDO las cuales se basan en POO y las cuales controlan automáticamente el sql-injection.

Y bueno la pregunta es si alguien usa o uso alguna vez PDO si tiene algún bug o algo importante a resaltar.

Un saludo
 
Pero no veo ninguna instrucción para evitar el sql-injection, no hay ni html-entities ni ninguna parecida, no?
 
Hoy venia a preguntarles de que manera conectan sus aplicaciones en php con mysql cuando necesitan usar bases de datos.

Yo empecé usando el plugin clásico de mysql que viene por defecto en cualquier servidor php pero últimamente he estado probando las librerías PDO las cuales se basan en POO y las cuales controlan automáticamente el sql-injection.

Y bueno la pregunta es si alguien usa o uso alguna vez PDO si tiene algún bug o algo importante a resaltar.

Un saludo

google...
mysql - How can I prevent SQL injection in PHP? - Stack Overflow
 
No vengo a preguntar como prevenir el SQL injection, soy programador web y algo he visto aunque lleve poco tiempo en este mundo. El post es para preguntar con experiencias de gente que use las librerías mysql y las PDO ya que son diferentes y yo uso las PDO porque por mi experiencia son mas potentes y pensaba que no era necesario tener en cuenta la sql injection ya que la propia librería lo hace internamente pero por lo que me comenta Strings puede que este equivocado con esto ultimo. Un saludo
 
Creo que a lo que se refiere Strings es a que PDO no controla las inyecciones automáticamente, símplemente lo facilita. Me explico:

Insertar CODE, HTML o PHP:
$pdo->query("SELECT * FROM users WHERE id=" . $_GET['user_id']); // BAM! Inyección sql con PDO.

Si la usas como se debe usar:

Insertar CODE, HTML o PHP:
$stmt = $pdo->prepare("SELECT * FROM users WHERE id=:user_id");
$stmt->bindParam(':user_id', $_GET['user_id'], PDO::PARAM_INT); // No hay inyección, pdo lo escapa y lo transforma a un número (si el dato no es válido supongo que lo transformará a cero y te devolverá null, pero no estoy seguro de eso)
$stmt->execute();
 
A claro eso si, a lo que yo me refería es que no hay que aplicarle 3 o 4 funciones de encriptacion / desencriptacion a cada campo que se envía, por supuesto la sentencia prepare hay que usarla si no es como dejar la puerta abierta para que entren los malos jejeje.
 
Atrás
Arriba