簡體   English   中英

PHP / MySQL:如何驗證正確的轉義數據?

[英]PHP/MySQL: How to verify properly escaped data?

好吧,在我的php頁面上,我以這種方式轉義:

$title = "Jack's Long 'Shoes'";
$title = mysql_real_escape_string($title);
$go = mysql_query("INSERT INTO titles (title) VALUES '$title'");

然后,當我通過phpmyadmin查看此數據時,該數據將以轉義前的狀態顯示,即Jack's Long 'Shoes'

我的印象是: Jack\\s Long \\Shoes\\

斜線是否應該實際打印在mysql數據庫字段中?

不。轉義一旦進入數據表,就消失了。 這就是轉義數據的全部要點-就像將一封信塞進信封一樣。 這封信在通過郵政系統的過程中停留在信封中(已轉義)。 到達目的地(數據庫存儲介質)后,將其從信封中取出並以其原始形式存儲。

如果轉義(信封)與字母一起存儲,則每次將字母從數據庫中拉出時,都必須對其進行UNESCAPE(打開信封)。

對於數據庫,轉義用於從查詢解析器“隱藏” SQL元字符。 一旦數據通過解析器並被寫入數據庫,就不再需要轉義。 數據庫本身的內部處理程序知道什么是數據,什么是sql命令,因此,此時不再需要由轉義創建的人為划分。

必須存在某些字符,以便可以理解該語句。

例如,在PHP中,當您擁有$ var =“前一天,有人說,”“ Hello!\\”“; 您不希望\\出現在輸出字符串中。 在SQL中轉義是相同的概念。 轉義字符用於將特殊字符標記為文字,而不是實際顯示。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM