Die MySQL-Dokumentation sagt, dass es sein sollte \'
. Sowohl scite als auch mysql zeigen jedoch, dass dies ''
funktioniert. Ich habe das gesehen und es funktioniert. Was soll ich machen?
146
Die MySQL-Dokumentation sagt, dass es sein sollte \'
. Sowohl scite als auch mysql zeigen jedoch, dass dies ''
funktioniert. Ich habe das gesehen und es funktioniert. Was soll ich machen?
''
oder\'
ist richtig?\'
ist MySQL-spezifisch, während''
ANSI SQL-konform ist, wenn ich mich nicht irreAntworten:
Die von Ihnen zitierte MySQL-Dokumentation sagt tatsächlich etwas mehr aus, als Sie erwähnen. Es heißt auch:
(Außerdem haben Sie eine Verknüpfung zur MySQL 5.0-Version von Tabelle 8.1 hergestellt. Sonderzeichen-Escape-Sequenzen und die aktuelle Version ist 5.6 - die aktuelle Tabelle 8.1. Sonderzeichen-Escape-Sequenzen sehen jedoch ziemlich ähnlich aus.)
Ich denke, der Postgres-Hinweis zum
backslash_quote (string)
Parameter ist informativ:Das sagt mir, dass die Verwendung eines doppelten einfachen Anführungszeichens insgesamt eine bessere und langfristige Wahl ist als die Verwendung eines Backslashs, um dem einfachen Anführungszeichen zu entkommen.
Wenn Sie nun auch die Auswahl der Sprache, die Auswahl der SQL-Datenbank und ihrer nicht standardmäßigen Macken sowie die Auswahl des Abfrage-Frameworks zur Gleichung hinzufügen möchten, haben Sie möglicherweise eine andere Auswahl. Sie geben nicht viele Informationen über Ihre Einschränkungen.
quelle
Standard-SQL verwendet doppelte Anführungszeichen. MySQL muss das akzeptieren, um einigermaßen konform zu sein.
quelle
'
" in einer mit "'
" zitierten Zeichenfolge kann als "''
" geschrieben werden. . Ein ""
" in einer mit ""
" zitierten Zeichenfolge kann als """
" geschrieben werden. Vor dem Anführungszeichen steht ein Escape-Zeichen ("` `").Was ich glaube, bedeutete user2087510:
Ich habe dies auch mit Erfolg genutzt.
quelle
schreibe einfach
''
anstelle von'
ich meine zweimal'
quelle
Hier ist ein Beispiel:
Verwenden Sie einfach doppelte Anführungszeichen, um das einfache Anführungszeichen einzuschließen.
Wenn Sie darauf bestehen, einfache Anführungszeichen zu verwenden (und die Notwendigkeit, dem Zeichen zu entkommen):
quelle
Ich kenne drei Möglichkeiten. Das erste ist nicht das schönste und das zweite ist in den meisten Programmiersprachen üblich:
'I mustn''t sin!'
\
vor dem einfachen Anführungszeichen'
:'I mustn\'t sin!'
"I mustn't sin!"
quelle
\'
da es von so vielen Programmiersprachen verwendet wird, aber''
von mehr SQL-Dialekten unterstützt wird. Daher ist die Verwendung von Option 1 aus Kompatibilitätsgründen besser. Sqlite funktioniert beispielsweise nicht mit Backslash-Escapezeichen.Ersetzen Sie die Zeichenfolge
Dabei ist value Ihre Zeichenfolge, die in Ihrer Datenbank gespeichert wird.
https://www.npmjs.com/package/mysql-apostrophe
quelle
Ich denke, wenn Sie einen Datenpunkt mit Apostroph haben, können Sie einen Apostroph vor dem Apostroph hinzufügen
z.B. "Dies ist Johns Platz"
Hier nimmt MYSQL zwei Sätze an: "Dies ist Johns Platz."
Sie können "Dies ist Johns Platz" setzen. Ich denke, das sollte so funktionieren.
quelle
In PHP verwende ich gerne mysqli_real_escape_string (), das Sonderzeichen in einer Zeichenfolge zur Verwendung in einer SQL-Anweisung maskiert.
Siehe https://www.php.net/manual/en/mysqli.real-escape-string.php
quelle
Möglicherweise nicht zum Thema gehörend, aber vielleicht sind Sie hierher gekommen, um nach einer Möglichkeit zu suchen, die Texteingabe aus einem HTML-Formular zu bereinigen. Wenn ein Benutzer das Apostrophzeichen eingibt, wird beim Versuch, den Text in eine SQL zu schreiben, kein Fehler ausgegeben -basierte Tabelle in einer DB. Es gibt verschiedene Möglichkeiten, dies zu tun, und Sie möchten vielleicht auch etwas über SQL-Injection lesen. Eine einfache Option in PHP ist jedoch die Verwendung der Funktion htmlspecialchars () , mit der alle Ihre Apostrophe konvertiert werden, in
'
die Sie möglicherweise speichern möchten wie auch immer.quelle