Cita:
Iniciado por GatorV Como dicen el mismo nombre la diferencia es esa, bindValue ata un parámetro a un valor dado, y bindParam a una variable, por lo que puedes hacer consultas preparadas en un ciclo, por ejemplo:
Código PHP:
Ver original$stmt = $con->prepare("INSERT INTO colors VALUES (?)");
$stmt->bindParam(1, $color, PDO::PARAM_STR);
$colors = array('black', 'blue', 'red', 'yellow'); foreach ($colors as $color) {
$stmt->execute();
}
Con bindValue solo lo haces al valor que le defines al momento que mandas llamar.
El que uses cualquiera de los dos, te ayuda a prevenir inyecciones por el simple hecho de que primero se manda la consulta preparada al servidor y luego mandas los valores, con lo cual previenes la inyección.
Saludos.
Gracias pero igual sigo confundido, ya q en el manual de php dice lo mismo q me estas explicando vos y da los mismos ejemplos para los dos casos y no me doy cuenta de la diferencia.
bindValue: Vincula un valor al parámetro de sustitución...
bindParam: Vincula una variable de PHP a un parámetro de sustitución con nombre...
Lo q no logro entender es, en este caso, a q le llama Valor y a q Variable...
Yo lo entiendo como q bindValue se usa para un valor unico o estatico y bindParam como en el ejemplo q me diste vos, con el array, para muchos valores dentro de una variable.
Esa es la diferencia q no puedo ver