字符串在傳遞過程中發(fā)生了變化,字符串傳遞
Jun 13, 2016 am 08:51 AM字符串在傳遞過程中發(fā)生了變化,字符串傳遞
情況描述:
前端輸入的內(nèi)容是:;?9W/U\|"s6u|:M
然而傳遞到后端再保存到數(shù)據(jù)庫時就成了:;?9W/U|"s6u|:M
這是為什么呢?
這是怎么回事呢?
1:我發(fā)現(xiàn)在insert到數(shù)據(jù)庫之前都還是正確的
2:然后單獨使用heidisql工具去更改這個值,它顯示的sql語句是:
<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)義特殊符號'\'
可以究竟為什么會轉(zhuǎn)義?難道是字符串的單引號雙引號在作祟嗎?
如果把字符放在單引號'之間,除了單引號本身'之外的絕大多數(shù)字符會解釋成和寫在代碼中一樣的形式。
放在雙引號之間的字符串支持插入替換(內(nèi)嵌在字符串中的變量會被替換成其內(nèi)容),而且也會替換轉(zhuǎn)義字符,例如用換行符替換\n,用tab替換\t,\換成\\。同樣,\|它會解釋成|
如果把上面的PHP中的代碼的sql置于單引號中,則會是無效的sql語句:
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ù)庫的,如果所有進入 PHP 的數(shù)據(jù)都被轉(zhuǎn)義的話,那么會對程序的執(zhí)行效率產(chǎn)生一定的影響,會產(chǎn)生性能問題。
在運行時調(diào)用轉(zhuǎn)義函數(shù)(如 addslashes())更有效率。
所以很明顯,這里插入數(shù)據(jù)庫我們需要轉(zhuǎn)義,所以在需要轉(zhuǎn)義的地方調(diào)用addslashes()函數(shù)來手動轉(zhuǎn)義即可
<span>$pwd</span> = <span>addslashes</span>(<span>$pwd</span><span>);/<span><strong><span>/加這行代碼后保存到數(shù)據(jù)庫就對了,OK,解決問題 </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中,有時候json編碼后也需要轉(zhuǎn)義:
????? $parameters = addslashes(json_encode($args));
?

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

1. ?? pycharm? ?? pycharm ????? ?????. 2. ?? ?? ? Python ????? ???? ??? ??? ??? ???? ?? ???? ??? ? Pythonfile? ?????. 3. ???(??: s="-")? ?????. 4. ?? ?? ???? ??? 20? ???? ???(??: s1=s*20). 5. ?? ?? ??(??: print(s1))? ?????. 6. ????? ????? ???? ??? ?? ?? ?????. - 20? ?????.

??? ???? ????? ??? Go ??? ??? ?? ???? ?? ?????. ??? Go ??? ????? ??? ????? ??? ?? ????. ??? ????? ??? Go ??? ???? ???? ??? ?? ??? ????? ??? ??? ??? ?? ????. ? ????? ????? ??? Go ??? ??? ? ?? ???? ???? ??? ? ??? ? ? ??? ? ??? ???? ?? ??? ?????. ???? ????? ????? ??? ?????? ???? ?? JavaScript, HTML, CSS? ???? ??? ????.

PHP?? int ??? ???? ???? ??? ?? ??? ?? PHP ???? int ??? ??? ???? ???? ?? ??? ?? ????. ? ??? ??? ???? ??? ? ????. ? ????? ??? ??? ?? ?? ?? ?? ??? ?? ? ?? ???? ??? ??? ?????. 1. PHP ?? ?? strval()? ?????. PHP? ??? ??? ??? ??? ???? ??? ? ?? ?? ?? strval()? ?????. int?? string??? ???? ? ?,

GoLang? ???? ??? ? ??? ?? ??? ???? ???? ??? ? ????. ??? ??? ???? ??? ??. ??? ??? ???? ? ???? ????. ???? ?? ??? ??? ?????. ?? ??????? ???? ?? ??? ??? ??? ?????.

PHP ??? ??: ?? ??? ???? ??? ?? ?? ? PHP ???? ??? ??? ?? ???? ?? ?????. ??? ?? ??? ???? ??? ??? ???? ?? ???? ???? ? ?? ????. ? ????? ?? ??? ???? ???? ?? ??? ???????. ?? ???? ?? ??? ???????. ?? ?? ??? ??? ???? ?? ?? ??? ???? ??? ??? ???? ??? ?????. ?? ??, "apple,ba"? ????.

React? ?? ???? ?? ??? ??, ?? ?? ? ?? DOM? ?????. 1) ?? ???? ?? ????? ?? UI? ??? ??? ???? ??? ?? ?? ???? ?? ?? ???? ??????. 2) ?? ??? ?? ? ??? ?? ?? ???? ???? ?? UI ????? ??????. 3) ?? DOM ??? ??, ????? DOM ??? ?? ??? ???? UI? ????????.

???? ?? ??? ??? ???? ?? PHP?? ???? ???? ??? ???? ?? ??? ? ????. ?? ???? ?? ??? ??? ????? ???? ?? ??? ?? ??? ???? ??????. ??? PHP?? ???? ?? ??? ??? ???? ??? ??? ???? ???? ?? ??? ?????. 1. (??) ??? ?? PHP?? ???? ?? ??? ??? ???? ?? ??? ??? ???? ???? ????. ?? ???? ??? ??? ?? (float)? ???? ???, PHP? ???? ?????.

? ?????? ??? ?? ???? ???? ???? PHP? ?? ??? ??? ?? ??? ??? ????. ???? ?? ???? ???, ?? ???? ??? ? ??? ???? ?? ??? ?? ??? ???. ? ????? ???? ??? ? ??? ???? ? ?? PHP ??? ???? ???? ?? ??? ?????. ? 1: substr ?? ?? PHP? substr ??? ???? ??? ???? ? ?????. ???? ?? ??? ???? ?? ??? ??? ? ????.
