brauche ich einen Weg, um die folgende Abfrage ausführen:PHP SQLSRV: eine Reihe von Werten IN-Klausel vorbei
SELECT *
FROM myTable
WHERE column NOT IN ('val1', 'val2')
Nun val1
und val2
innerhalb eines Arrays sind, dass ich wie diese in einen String implodiert :
$inClause = "'" . implode("','", $inClauseArr) . "'";
Wenn ich die Zeichenfolge in der Abfrage Deklaration so sagen es funktioniert:
$sql = "[...]WHERE column NOT IN ($inClause)";
Aber wenn ich es als sqlsrv_query
Parameter wie dies passieren, wird die Abfrage nicht funktioniert:
$stmt = sqlsrv_query($conn, $sql, array($inClause));
Ich bin nicht jeden Fehler. $stmt
ist wahr, aber while
Zyklus gibt nichts zurück.
Ich muss unbedingt durch sqlsrv_query
gehen, wie kann ich das tun?
UPDATE
Hier ist der $sql
Wert:
SELECT *
FROM orders(NOLOCK)
WHERE order_id NOT IN (?)
Können Sie uns zeigen den Wert von '$ sql', wenn Sie die Parameter zu verwenden versuchen? – ImClarky
@ImClarky kann nicht sehen, wie dies helfen kann, aber ich habe die Frage aktualisiert (eigentlich ist es die gleiche der ersten Code-Zitat) – Mark
Sie sollten auch Fragezeichen in Ihrer SQL-Abfrage nach '$ inClauseArr' Länge füllen. – alalp