簡體   English   中英

如何在MySQL和Java中轉義引號“”字符

[英]How to escape quotes “” characters in MySQL and Java

我們怎樣才能逃避Java和MySQL中的quotes ""

傳入的XML文件有引號,我使用Java解析該文件。 所以我想在這里轉義引號,但在數據庫中它應該包含引號。 當我進行查詢時,結果會有引號。 在網頁上顯示時,它還應顯示引號。

讓我試着理解......

傳入的文件中包含引號。 您想將其發送到數據庫。 當你從數據庫中取回它然后你仍然希望那些引號存在。

那么,您是否正在從數據庫中獲取您的問題?

如果是這樣,那么我非常懷疑你是按照以下順序做的事情:(我將其包含在免責聲明中,以防止誤解和切割/粘貼到他們自己的應用程序中。;))

不好 - 不要這樣做

String sql = "insert into foo (bar,baz) values(" +myValue1 + ", " + myValue2 + ")";
Statement stmt = connection.createStatement();
stmt.executeUpdate(sql);

不好 - 不要那樣做

如果是這樣,那么你應該至少使用預准備語句的參數。 a)您將不那么容易被惡意垃圾刪除所有表格,並且b)您將不會有任何逃避問題。

String sql = "insert into foo (bar, baz) values( ?, ? )";
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setString(1, myValue1);
stmt.setString(2, myValue2);
stmt.executeUpdate();

請注意,對於像CLOB這樣的事情以及不同數據庫實現的具體情況,它也更安全(我在想你,Oracle>))

如果它是某種其他類型的轉義,即來自XML或來自HTML,那么這是不同的,但它在整個網絡上都有很好的文檔記錄。

或者提供一些示例代碼,如果我完全偏離基礎。

幾乎任何東西的典型轉義字符都是反斜杠\\

你應該使用:

\"

任何東西(好的,不是什么),但大多數角色都使用

 \

作為逃脫角色。

顯而易見(也是最好)的事情是其他人建議的。 一個愚蠢的選擇是將雙引號放在單引號中:

String quotedText = '"' + "A quick brown fox..." + '"';

暫無
暫無

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

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