Estoy aprendiendo las cuerdas con PDO.PDO posicional y parámetros nombrados como parte de la misma consulta preparada?
Aquí está mi sql (la cantidad de parámetros que pueden aparecer en WHERE es variable).
SELECT
ID, title
FROM
table
WHERE
something = ?
ORDER BY
:sort :dir
LIMIT
:start, :results
Aquí está mi código:
$query = $conn->prepare($sql);
if ($parameters) {
$i = 0;
foreach ($parameters AS $parameter) {
$i++;
$query->bindParam($i, $parameter);
}
}
$query->bindParam(':start', $pagination['start'], PDO::PARAM_INT);
$query->bindParam(':results', $pagination['results'], PDO::PARAM_INT);
$query->bindParam(':sort', $pagination['sort']);
$query->bindParam(':dir', $pagination['dir']);
$query->execute();
... y aquí es la excepción que genera:
Invalid parameter number: mixed named and positional parameters
Es imposible combinar los parámetros posicionales y nombrados en la misma ¿consulta? ¿O me estoy perdiendo algo?
Gracias!
No estoy seguro de 'LIMIT', pero' ORDER BY' no acepta parámetros, al menos no en la versión de PHP que estoy usando (5.2.9) – jeroen
MySQL no aceptará * valores cotizados * para las cláusulas 'LIMIT' y' ORDER BY', que es lo que sucederá cuando esos marcadores de posición sean sustituidos. No es un problema de PHP ... y hace que tu pregunta sea discutible. – Charles