Ich bin mit einer PDO-Abfrage, so etwas wie:PHP, MySQL - Gibt zurück, welcher Wert verwendet wurde, wenn die Eingabe ein Array ist?
$inputArr = array(val1, val2, val3, ...);
$qMarks = str_repeat('?,', count($inputArr) - 1) . '?';
$stmt = $db->prepare("SELECT id, name, type, level
FROM table
WHERE name IN ($qMarks)");
$stmt->execute($inputArr);
... parse the rows that have been returned
Und das funktioniert genau wie erwartet, kein Hang-ups oder sonst etwas.
Mein Problem ist, dass ich wissen muss, welcher Wert von $inputArr
wurde verwendet, um jede Zeile zurückgegeben zu erhalten.
Ich habe versucht,
WHERE name IN ($qMarks) AS inputVal
und
WHERE name IN ($qMarks AS inputVal)
aber jene Absturz der Abfrage.
Wie kann ich feststellen, welcher Input-Array-Wert verwendet wurde, um jede Zeile in der Ausgabe zurückzugeben?
EDIT 1
Ja, ich verstehe, dass die Eingabe von Suchwert wäre name
, für diesen speziellen Fall, aber die Abfrage oben ist nur zu Demonstrationszwecken, wie ich die Suchwerte in die Abfrage am Putten .
Die tatsächliche ist viel komplexer und gibt alle name
Wert mit schließen (aber nicht immer identisch).
Umm .. Wenn Sie die Zeile holen wäre es nicht in $ Zeile ['Name'] 'da das etwas in $ QMarks ??? – AbraCadaver
@AbraCadaver ist es nicht so einfach. Die tatsächliche Abfrage verwendet eine benutzerdefinierte Funktion, um Namenswerte zurückzugeben, die * close *, aber nicht immer identisch sind, und zwei LEFT JOIN-Elemente enthalten. Dies dient nur der Veranschaulichung, wie ich die Suchwerte in die Abfrage einfüge. – Birrel
Ja, das ist normalerweise nützliche Information im Voraus. – AbraCadaver