字符串在傳遞過(guò)程中發(fā)生了變化,字符串傳遞
Jun 13, 2016 am 08:51 AM字符串在傳遞過(guò)程中發(fā)生了變化,字符串傳遞
情況描述:
前端輸入的內(nèi)容是:;?9W/U\|"s6u|:M
然而傳遞到后端再保存到數(shù)據(jù)庫(kù)時(shí)就成了:;?9W/U|"s6u|:M
這是為什么呢?
這是怎么回事呢?
1:我發(fā)現(xiàn)在insert到數(shù)據(jù)庫(kù)之前都還是正確的
2:然后單獨(dú)使用heidisql工具去更改這個(gè)值,它顯示的sql語(yǔ)句是:
<code><span class="sql1-reservedword"> UPDATE<span class="sql1-space"> <span class="sql1-delimitedidentifier">`bitstorm_http_node`<span class="sql1-symbol">.<span class="sql1-delimitedidentifier">`config_user_pwd`<span class="sql1-space"> <span class="sql1-reservedword">SET<span class="sql1-space"> <span class="sql1-delimitedidentifier">`Password`<span class="sql1-symbol">=<span class="sql1-string">';?9W/U\\|"s6u|:M'<span class="sql1-space"> <span class="sql1-reservedword">WHERE<span class="sql1-space"> <span class="sql1-delimitedidentifier">`Id`<span class="sql1-symbol">=<span class="sql1-number">14<span class="sql1-symbol">; </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code>
我們發(fā)現(xiàn)程序在insert操作之前,它在值中添加了轉(zhuǎn)義付去轉(zhuǎn)義特殊符號(hào)'\'
可以究竟為什么會(huì)轉(zhuǎn)義?難道是字符串的單引號(hào)雙引號(hào)在作祟嗎?
如果把字符放在單引號(hào)'之間,除了單引號(hào)本身'之外的絕大多數(shù)字符會(huì)解釋成和寫在代碼中一樣的形式。
放在雙引號(hào)之間的字符串支持插入替換(內(nèi)嵌在字符串中的變量會(huì)被替換成其內(nèi)容),而且也會(huì)替換轉(zhuǎn)義字符,例如用換行符替換\n,用tab替換\t,\換成\\。同樣,\|它會(huì)解釋成|
如果把上面的PHP中的代碼的sql置于單引號(hào)中,則會(huì)是無(wú)效的sql語(yǔ)句:
Invalid query
INSERT INTO `bitstorm_http_node`.`config_user_pwd` (`Id`, `Domain_Name`, `Username`, `Password`) VALUES (0, "mdc-mon-tg-zabvip01.ubisoft.onbe", "cheng.wang", ";?9W/U\|"s6u|:M");
解決辦法:
在PHP中:并不是每一段被轉(zhuǎn)義的數(shù)據(jù)都要插入數(shù)據(jù)庫(kù)的,如果所有進(jìn)入 PHP 的數(shù)據(jù)都被轉(zhuǎn)義的話,那么會(huì)對(duì)程序的執(zhí)行效率產(chǎn)生一定的影響,會(huì)產(chǎn)生性能問(wèn)題。
在運(yùn)行時(shí)調(diào)用轉(zhuǎn)義函數(shù)(如 addslashes())更有效率。
所以很明顯,這里插入數(shù)據(jù)庫(kù)我們需要轉(zhuǎn)義,所以在需要轉(zhuǎn)義的地方調(diào)用addslashes()函數(shù)來(lái)手動(dòng)轉(zhuǎn)義即可
<span>$pwd</span> = <span>addslashes</span>(<span>$pwd</span><span>);/<span><strong><span>/加這行代碼后保存到數(shù)據(jù)庫(kù)就對(duì)了,OK,解決問(wèn)題 </span></strong></span></span><span>if</span>(<span>$zabbixHelper</span>==<span>false</span><span>){ </span><span>return</span> <span>$this</span>->returnError("Invalid input: Can not login zabbix using this username and password."<span>); } </span><span>$sql</span> = "INSERT INTO `bitstorm_http_node`.`config_user_pwd` (`Id`, `Domain_Name`, `Username`, `Password`) VALUES (0, '" . <span>$domainName</span> . "', '" . <span>$username</span> . "', '" . <span>$pwd</span> . "');"<span>; </span><span>$this</span>->callSqlQuery(<span>$sql</span>));
?
最后,在PHP中,有時(shí)候json編碼后也需要轉(zhuǎn)義:
????? $parameters = addslashes(json_encode($args));
?

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

1. ?ffnen Sie zuerst Pycharm und rufen Sie die Pycharm-Homepage auf. 2. Erstellen Sie dann ein neues Python-Skript, klicken Sie mit der rechten Maustaste – klicken Sie auf ?Neu“ – klicken Sie auf ?Pythondatei“. 3. Geben Sie eine Zeichenfolge ein, Code: s="-". 4. Dann müssen Sie die Symbole in der Zeichenfolge 20 Mal wiederholen, Code: s1=s*20 5. Geben Sie den Druckausgabecode ein, Code: print(s1). 6. Führen Sie abschlie?end das Skript aus und Sie sehen unten unseren Rückgabewert: - 20 Mal wiederholt.

Als schnelle und effiziente Programmiersprache erfreut sich Go im Bereich der Backend-Entwicklung gro?er Beliebtheit. Allerdings assoziieren nur wenige Menschen die Go-Sprache mit der Front-End-Entwicklung. Tats?chlich kann die Verwendung der Go-Sprache für die Front-End-Entwicklung nicht nur die Effizienz verbessern, sondern Entwicklern auch neue Horizonte er?ffnen. In diesem Artikel wird die M?glichkeit der Verwendung der Go-Sprache für die Front-End-Entwicklung untersucht und spezifische Codebeispiele bereitgestellt, um den Lesern ein besseres Verst?ndnis dieses Bereichs zu erleichtern. In der traditionellen Frontend-Entwicklung werden h?ufig JavaScript, HTML und CSS zum Erstellen von Benutzeroberfl?chen verwendet

Ausführliche Erl?uterung der Methode zum Konvertieren des Typs int in einen String in PHP. Bei der PHP-Entwicklung sto?en wir h?ufig auf die Notwendigkeit, den Typ int in einen String-Typ zu konvertieren. Diese Konvertierung kann auf verschiedene Weise erreicht werden. In diesem Artikel werden verschiedene g?ngige Methoden im Detail vorgestellt, mit spezifischen Codebeispielen, um den Lesern das Verst?ndnis zu erleichtern. 1. Verwenden Sie die integrierte Funktion strval() von PHP. PHP bietet eine integrierte Funktion strval(), die Variablen verschiedener Typen in String-Typen konvertieren kann. Wenn wir den Typ int in den Typ string konvertieren müssen,

Obwohl Zeichenfolgen in GoLang unver?nderlich sind, k?nnen sie mithilfe der folgenden Technik dynamisch ge?ndert werden: Verketten von Zeichenfolgen mithilfe der Zeichenfolgenverkettung. Erstellen Sie eine neue Zeichenfolge mithilfe der Zeichenfolgenformatierung. ?ndern Sie das zugrunde liegende Byte-Slice der Zeichenfolge. Verwenden Sie ver?nderbare Zeichenfolgentypen, die von Bibliotheken von Drittanbietern bereitgestellt werden.

PHP-String-Operation: Entfernen Sie zus?tzliche Kommas und behalten Sie nur Kommas bei. Implementierungstipps In der PHP-Entwicklung ist die String-Verarbeitung eine sehr h?ufige Anforderung. Manchmal müssen wir die Zeichenfolge verarbeiten, um zus?tzliche Kommas zu entfernen und die einzigen Kommas beizubehalten. In diesem Artikel stelle ich eine Implementierungstechnik vor und stelle konkrete Codebeispiele bereit. Schauen wir uns zun?chst eine allgemeine Anforderung an: Angenommen, wir haben eine Zeichenfolge, die mehrere Kommas enth?lt, und wir müssen die zus?tzlichen Kommas entfernen und nur das eindeutige Komma beibehalten. Ersetzen Sie beispielsweise ?apple,ba

Zu den Hauptfunktionen von React geh?ren komponentiertes Denken, Staatsmanagement und virtuelles DOM. 1) Die Idee der Komponentierung erm?glicht es, die Benutzeroberfl?che in wiederverwendbare Teile aufzuteilen, um die Lesbarkeit und Wartbarkeit der Code zu verbessern. 2) Das staatliche Management verwaltet dynamische Daten durch Status und Requisiten und ?ndert sich ausl?sen UI -Updates. 3) Aktualisieren Sie die Benutzeroberfl?che virtuelle DOM -Optimierungsleistung durch die Berechnung des Mindestbetriebs der DOM -Replik im Speicher.

Das Konvertieren einer Zeichenfolge in eine Gleitkommazahl ist eine h?ufige Operation in PHP und kann über integrierte Methoden durchgeführt werden. Stellen Sie zun?chst sicher, dass die Zeichenfolge in einem zul?ssigen Gleitkommaformat vorliegt, bevor sie erfolgreich in eine Gleitkommazahl konvertiert werden kann. Im Folgenden wird detailliert beschrieben, wie eine Zeichenfolge in PHP in eine Gleitkommazahl konvertiert wird, und es werden spezifische Codebeispiele bereitgestellt. 1. (Float-)Cast verwenden In PHP ist die Verwendung von Cast der einfachste Weg, einen String in eine Gleitkommazahl umzuwandeln. Die M?glichkeit, die Konvertierung zu erzwingen, besteht darin, (float) vor der Zeichenfolge hinzuzufügen, und PHP konvertiert sie automatisch

Als Skriptsprache, die h?ufig bei der Entwicklung von Webanwendungen verwendet wird, verfügt PHP über sehr leistungsstarke Funktionen zur Zeichenfolgenverarbeitung. In der t?glichen Entwicklung sto?en wir h?ufig auf Vorg?nge, bei denen eine Zeichenfolge gel?scht werden muss, insbesondere die letzten beiden Zeichen der Zeichenfolge. In diesem Artikel werden zwei PHP-Techniken zum L?schen der letzten beiden Zeichen einer Zeichenfolge vorgestellt und spezifische Codebeispiele bereitgestellt. Tipp 1: Verwenden Sie die Substr-Funktion Die Substr-Funktion in PHP wird verwendet, um einen Teil eines Strings zurückzugeben. Wir k?nnen Zeichen leicht entfernen, indem wir die Zeichenfolge und die Startposition angeben
