Ich stelle gerade alle meine Abfragen auf PDO um.
Dabei stellt mich dieses Skript vor Probleme.
Als erstes wird die Datenbank nach 10 zutreffenden ids befragt.
Dieses Ergebnis wird in das PHP array $zehnids gesteckt.
Im Zweiten Schritt wird dieselbe Tabelle nach weiteren Spalten unter Benutzung der $zehnids-Werte abgefragt.
Doch die Zweite Abfrage bringt die Fehlermeldung:
Fatal error: Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'id' in where clause is ambiguous in G:
Wo ist der Fehler? Oder lässt sich die ganze Abfrage-Technik besser machen?
Der Grund, warum ich dieses Konstrukt verwende, ist:
die spalte8 wird am Ende des Skripts hochgezählt, also geändert - wodurch bei der nächsten Abfrage andere
ids als result gezogen werden. Darum ist es wichtig, immer mit den gleichen ids zu fragen.
Code:
PHP Code:
$placeholders = implode(',', array_fill(0, count($zehnids), '?'));
$stmt = $pdo->prepare("SELECT spalte4, spalte5, spalte6, ... FROM tabelle1 WHERE (spalte9 = '3' AND id IN ($placeholders))");
$stmt->execute($zehnids);
while($row = $stmt->fetch())
{
echo ("...");
echo("<h2>" . $row["spalte4"] . "<h2>" . $row["spalte6"] . " ....");
}