Ich habe eine Situation, in der ich eine Liste von Namen in einem Array hinzufügen und es in einer SQL-Abfrage verwenden möchte.MySQL SELECT WHERE IN Array
Wie ich es tun:
$names = implode(',', $names);
$sql = "DELETE FROM product WHERE name NOT IN ($names)";
Dies funktioniert ok, wenn ich id verwenden (aber ich kann das hier nicht tun). Problem ist - Name kann ein Komma enthalten (d. H. - benchpress rack, blue
) und das bricht diese Abfrage. Gibt es eine Möglichkeit, dieses Problem zu umgehen?
Es bricht wahrscheinlich, weil Ihre Namen nicht zitiert werden. Was ist die Fehlermeldung? Wenn "Bankdrück-Rack, blau" wirklich direkt in Ihrer Anfrage ist, die ungültig ist, müssen Strings zitiert werden. – chris85
Wenn Sie die PDO-Erweiterung verwenden, können Sie ein Array als Parameter für $ name senden. Wenn nicht, implodiere die mit einzelnen Apostafotos. Lass deine Sehne wie folgt aussehen: 'Bankdrücken-Rack, blau', 'Bankdrücken-Rack, rot' usw. –
@LaytonEverson Platzhalter müssen jedoch an die Abfrage angehängt werden, damit das Array binden kann. – chris85