Estoy mejorando todas mis consultas, antes usaba este método:
Código anterior (siempre use esto y funciona correctamente), como "dato curioso" en esta consulta sino concateno '.($by).' no me devuelve datos, es decir que no puedo usar :by en la consulta. No entiendo por qué (si me pudieran ayudar con eso también)
$con = Connection(USERNAME, PASSWORD);
$query = $con->prepare('SELECT id_album FROM albums WHERE '.($by).' = :by_value');
$query->execute(array(':by_value' => $by_value)); $results = $query->fetchAll();
Pero viendo un poco parece ser que hacerlo de la siguiente manera es más eficiente y seguro:
Pero me dice "Uncaught Error: Call to a member function bindParam() on bool" busqué el error pero veo ninguna relación con lo que escribí, lo ví varias veces pero parece que todo está correcto.
$con = Connection(USERNAME, PASSWORD);
$query = $con->prepare('SELECT id_album FROM albums WHERE :by = :by_value');
$query = $con->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$query->bindParam(':by', $by);
$query->bindParam(':by_value', $by_value);
$query->execute();
$results = $query->fetchAll();