Das Einfügen von Text mit einfachen Anführungszeichen in eine PostgreSQL-Tabelle erfordert eine besondere Behandlung, um Syntaxfehler zu vermeiden.
Beim standardmäßigen SQL-Escape werden einfache Anführungszeichen verdoppelt, z. B. „Benutzerprotokoll“. PostgreSQL unterstützt auch die Verwendung von Backslash-Escapezeichen, z. B. E'user's log'. Im Allgemeinen wird jedoch empfohlen, die standardmäßige Escape-Methode für doppelte Anführungszeichen zu verwenden.
Wenn Sie mehrere Ebenen von Escapezeichen oder verschachtelten Anführungszeichen verarbeiten müssen, können Sie Dollarzeichen verwenden, um die Zeichenfolge in Anführungszeichen zu setzen. Zum Beispiel $$escape ' mit ''$$ oder $token$escape ' mit ''$token$.
Beim Einfügen von Werten, die einfache Anführungszeichen enthalten, in die Datenbank müssen diese korrekt in Anführungszeichen gesetzt werden, um Fehler zu vermeiden. PostgreSQL stellt hierfür mehrere Funktionen zur Verfügung:
quote_literal()
: Einfache Anführungszeichen in einer Zeichenfolge maskieren und den in Anführungszeichen gesetzten Wert zurückgeben. quote_nullable()
: Ähnlich wie quote_literal()
, gibt aber bei leerer Eingabe NULL aus. format()
: Verwenden Sie den Formatbezeichner %L
, um Anführungszeichen entsprechend quote_nullable()
anzuwenden. Es wird nicht empfohlen, Funktionen wie concat()
und concat_ws()
zu verwenden, um einfache Anführungszeichen zu maskieren, da sie verschachtelte Anführungszeichen oder Backslashes nicht maskieren.
Um die erforderlichen Werte in die Tabelle test
einzufügen:
<code class="language-sql">insert into test values (1, quote_literal('user''s log')); insert into test values (2, quote_literal('my user''s')); insert into test values (3, quote_literal('customer''s'));</code>
Das obige ist der detaillierte Inhalt vonWie fügt man einfache Anführungszeichen sicher in eine PostgreSQL-Datenbank ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!