java
  • mysql
  • sql
  • 2014-01-18 41 views 0 likes 
    0

    我有此查詢(查詢的參數被輸入給出:既表名和密碼字符串由文本字段給出SQL語法用繩子

    //... 
    ResultSet rs = st.executeQuery("select * " + 
               "from `"+ table + "` " + 
               "where Name='" + name + "' " + 
               " and Password='" + password + "'"); 
    

    ,並在這之後我還是要說。不懂爲什麼我不能在此輸入是否:

    else if (table=="products"){ 
        // ... 
    } 
    

    ,所以我不能隨着程序走

    +0

    您是否遇到任何錯誤或異常? –

    +0

    您可能想分享的任何異常都已拋出? – Typo

    +1

    哪裏開始if語句? –

    回答

    0

    ==運算符比較兩個對象的散列值。只有當它們都具有相同的散列值時,它纔會返回true。始終使用str1.equals(str2)方法比較字符串。

    還使用準備好的語句將有助於防止SQL injection,這是一種危險的黑客行爲。請參閱here瞭解爲什麼這是危險的。

    0

    您的答案:

    you need to use String.equals 
    

    建議:

    please use PREPARED STATEMENT. Simple statement is not secured as well as for other reason its not good to use. 
    
    0

    當你做,如果(表==「產品」),Java將做兩個字符串的比較深,自這兩個字符串對象是不同的(即使他們有相同的文本),代碼段將不會執行,因爲條件評估爲false。你可以嘗試table.equals(「產品」)。這只是比較兩個字符串的文本。

    相關問題