MYSQL Löschen, wo Feld nicht Teil von Array ist

8

Ich habe eine Tabelle "grounddentlink", wo ich alle Zeilen löschen möchte, die nicht in einem Formular überprüft wurden.

Im Wesentlichen möchte ich eine Abfrage durchführen wie:

%Vor%

Ich denke, ich könnte eine Variable mit einer foreach-Schleife setzen und dann die Array-Werte hinzufügen, so dass ich am Ende:

%Vor%

... und so weiter.

Aber ist das wirklich der richtige / beste Weg, dies zu tun?

Vielen Dank im Voraus!

    
Brian Barrus 02.11.2011, 18:01
quelle

6 Antworten

16
%Vor%

Weitere Informationen finden Sie hier Ссылка

PHP-Syntax:

%Vor%     
Peter 02.11.2011, 18:04
quelle
2

Wenn Sie diese Abfrage von einer Zend Framework-basierten Anwendung ausführen möchten, beachten Sie bitte Folgendes:

%Vor%

Wenn Sie es versuchen. Operator für Verkettungszwecke führt die Abfrage aufgrund der Anführungszeichen zu einem schwerwiegenden Fehler. Also aus meiner Erfahrung mit htmlspecialchars oder htmlncode zusammen mit. Betreiber wird nur Ihre Zeit und Geduld verbrauchen. Die Verwendung von Sprintf ist elegant und hilft Ihnen, Ihren Code sauber zu halten.

Und ich denke, diese Beobachtungen gelten für jede Anwendung, die PHP-Objekte verwendet.

    
Vlad Manuel Mureșan 01.08.2012 14:06
quelle
0

Neuer Benutzer von Exchange stapeln, bitte verzeihen und anweisen, wenn ich einen Fauxpas begehe.

Die vorhergehende Antwort ist unglaublich gefährlich, weil sie Sie für SQL-Injection-Angriffe öffnet.

Verwenden Sie immer bind params.

Verwenden Sie immer bind params.

Verwenden Sie immer bind params.

Hinweis: Wenn Ihre Abfrage nicht "DELETE * FROM groupdentlink WHERE group_id = 'a' AND zahnarzt_id NICHT IN (?,?,?);" du machst es falsch.

    
Meleneth 02.11.2011 18:25
quelle
0

Sie müssen nur die IDs mit einem Komma verbinden:

%Vor%

Dies gibt Ihnen eine Abfrage wie folgt:

%Vor%

Wenn Sie die Anführungszeichen um die IDs benötigen, ändern Sie die Schleife wie folgt:

%Vor%     
swatkins 02.11.2011 18:07
quelle
0

Ich habe die Anweisung $str = rtrim($str, ",");
gefunden Das nachfolgende Komma wurde nicht entfernt, was zu einem Fehler führte Fehler
Ich habe diese Arbeit erfunden:

// Zeichenkette ohne Anführungszeichen

%Vor%

// Zeichenkette mit Anführungszeichen

%Vor%



%Vor%     
AlanJ 25.10.2012 04:55
quelle
0

Eine elegante, vollständig parametrisierte Lösung (mit PDO):

%Vor%

Die implode Funktionszeichenfolgen ? zusammen mit , , ohne ein Komma am Ende hinzuzufügen ( Quelle ). Sie könnten das in eine Funktion umwandeln, um es lesbarer zu machen, sonst behält %%_de% es schön und sauber ohne hässliche String-Verkettung.

    
tobiv 11.01.2018 15:54
quelle

Tags und Links