funktioniert baue ich meine Abfrage wie folgt:PHP + MySQL "WHERE ... IN" nicht
foreach($ids as $key => $idi) {
$ids[$key] = "'" . $idi . "'";
};
$ids_imploded = implode(", ", $ids);
$sql = "SELECT record_id, email FROM `actions_attendees` WHERE `action_id` IN (" . $ids_imploded . ") AND `backup` = 1 ORDER BY `timestamp` ASC LIMIT " . count($ids) . ";";
$result = mysqli_query($con, $sql);
Wo $ids
nur Array von wenigen Zahlen ist (so die $ids_imploded = "'132', '165'"
).
Wenn ich die generierte Abfrage in phpMyAdmin ausführen, bekomme ich was ich will. Wenn ich es von PHP aus starte, gibt es nur ein Objekt mit Nullen zurück. Warum?
Ich arbeite nicht, auch wenn ich die escape-Schleife entfernen.
EDIT: erzeugte Abfrage hallte wie
SELECT record_id, email FROM `actions_attendees` WHERE `action_id` IN ('1614', '1615') AND `backup` = 1 ORDER BY `timestamp` ASC LIMIT 2;
Vielleicht haben sie Echo aus der SQL-Anweisung anstatt es auszuführen und sicherzustellen, dass es wie erwartet geschrieben wird. – JNevill
Ich tat natürlich das und lief das Echo durch phpMyAdmin und es funktionierte – Destabilizator
Zeigen Sie den DB Verbindungsteil – Mihai