Ich lerne mit PDO.PDO Positions- und benannte Parameter als Teil derselben vorbereiteten Abfrage?
Hier ist mein SQL (die Anzahl der Parameter, die in der WHERE-Variable angezeigt werden kann).
SELECT
ID, title
FROM
table
WHERE
something = ?
ORDER BY
:sort :dir
LIMIT
:start, :results
Hier ist mein Code:
$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();
... und hier ist die Ausnahme, dass es erzeugt:
Invalid parameter number: mixed named and positional parameters
Ist es unmöglich, Lage- und benannte Parameter in der gleichen zu kombinieren Abfrage? Oder fehlt mir etwas?
Danke!
Ich bin nicht sicher über 'LIMIT', aber' ORDER BY' akzeptiert keine Parameter, jedenfalls nicht in der von mir verwendeten Version von PHP (5.2.9) – jeroen
MySQL akzeptiert keine * angegebenen Werte * für die Klauseln "LIMIT" und "ORDER BY", was passiert, wenn diese Platzhalter ersetzt werden. Es ist kein PHP-Problem ... und macht Ihre Frage strittig. – Charles