dedlfix: /MySQLi, bind_param und NOT IN()

Beitrag lesen

echo $begrüßung;

ein "Workaround" waere dann wohl,
$STMT->prepare(sprintf('SELECT ... FROM ... WHERE id NOT IN(%s)', $excludeIDsImploded));
zu verwenden.

Ein anderer Workaround wäre, die Anzahl der Fragezeichen der Anzahl der Werte anzupassen.

$sql = sprintf('… NOT IN (%s)', implode(',', array_fill(0, count($excludeIDs), '?')));

Desweiteren braucht man einen zweiten Kopfstand, um die variable Anzahl der Werte an das Statement zu binden: </archiv/2008/2/t167140/#m1090087>

Dann komme ich zwar ohne $STMT->bind_params() aus - aber "sauber" kommt mir das nicht vor.

Aus Sicht eines Datenbänkers könnte eine Antwort lauten: Korrigiere dein Datenlayout, so dass du mit JOINs arbeiten kannst. Wenn das nicht geht (vielleicht weil die Werte aus einer vom Anwender zu erstellenden Kreuzchenliste kommen), dann wirst du wohl einen der Workarounds nehmen müssen.

echo "$verabschiedung $name";