bind_param mir Array

dsNDesign

Erfahrenes Mitglied
Hei,
ich möchte eine Datenbankabfrage machen, in welcher ich mit FIND IN SET nach mehreren Werten suche.

Erstmal mein Array mit den zu suchenden Werten:
PHP:
$group_ids = {3, 5, 6,...} //beliebig viele Werte

Dann meine Abfrage:
PHP:
if($stmt = DB::getInstance()->prepare("SELECT id FROM alben WHERE FIND_IN_SET(owner_id, ?) && type = ?")) {
				$type = "g";
				$stmt->bind_param("is", $group_ids, $type);
				$stmt->execute();
				$stmt->bind_result($id);
				while($stmt->fetch()) {
					$group_album_ids[] = $id;
				}
				$stmt->close();
			}

So holt er mir nur das Ergebnis mit dem letzten Wert aus $group_ids.
Seither, ohne Prepared Statements hatte ich es so:
PHP:
FIND_IN_SET(owner_id,'{$group_ids}')
Jedoch möchte ich ja Prepared Statements verwenden.

Ist dies möglich? Hab mein Glück schon mit call_user_func_array versucht, jedoch ohne Erfolg.

Gruß


EDIT:
Ouh man. Die Frage hat sich erledigt. Ich muss das Array logischerweise als String behandeln, obwohl es natürlich Zahlen enthält, da ich es ja mit "," getrennt habe.

Also einfach aus
PHP:
$stmt->bind_param("is", $group_ids, $type);
folgendes machen
PHP:
$stmt->bind_param("ss", $group_ids, $type);
und alles funktioniert bestens (:
 
Zuletzt bearbeitet:
Den gleichen Thread hatte ich eben auch entdeckt und da meine Lösung gefunden.
Wie geschrieben, muss ich einfach das Array als String behandeln.
Also bind_param("ss",..) statt bind_param("is",...)
 
Zurück