2017-02-25 4 views
0

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; 
+2

Vielleicht haben sie Echo aus der SQL-Anweisung anstatt es auszuführen und sicherzustellen, dass es wie erwartet geschrieben wird. – JNevill

+0

Ich tat natürlich das und lief das Echo durch phpMyAdmin und es funktionierte – Destabilizator

+0

Zeigen Sie den DB Verbindungsteil – Mihai

Antwort

0

Das Problem könnte sein, dass Sie die falsche Datenbank abfragen, versuchen, eine db zuerst wählen, versuchen Sie diese Ausführung vor der Abfrage:

mysql_select_db('yourdb'); 

Ist das Ergebnis Ihrer Anfrage wahr? Überprüfen Sie Ihr Verbindungsobjekt, es scheint, als ob Sie nicht in der richtigen Datenbank sind.

0

Es scheint, dass die Abfrage in der Tat auch in PHP arbeitete, aber später, als ich die Ergebnisse verarbeitet wurde, intellisense mich betrogen und ich wurde mit mysql_fetch_assoc statt mysqli_fetch_assoc ...