亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

java.sql.SQL語法錯誤嘗試更新字符串字段時出現異常

java.sql.SQL語法錯誤嘗試更新字符串字段時出現異常

jeck貓 2022-09-21 21:28:50
我在phpMyAdmin中設置了我的數據庫,在下面的查詢中,我正在嘗試更新包含某些軟件的文件路徑的字符串字段,例如“C:\Program Files (x86)\卡巴斯基實驗室\卡巴斯基全方位安全軟件19.0.0\avp.exe”。當我執行查詢時,我得到java.sql.SQLSyntax錯誤異常,如下所示。此查詢在 phpMyAdmin 本身中運行時工作正常。我做錯了什么?我的查詢:String query4 = MessageFormat.format("UPDATE system_object SET file_path = {0}, validate={1} " +            "where category_key = 2", settings.getAntivirus_filePath(), settings.isAntivirus_validate());編輯我確實嘗試過在我的參數上使用引號,但后來我只是得到同樣的錯誤java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '0}, validate=true where category_key = 2' at line 1
查看完整描述

3 回答

?
慕少森

TA貢獻2019條經驗 獲得超9個贊

使用 a 和綁定參數;您當前的方法容易受到 sql 注入的影響。忽略這種擔憂(這是一個很大的問題),你沒有引用你的參數。你可以做PreparedStatement


String query4 = MessageFormat.format(

        "UPDATE system_object SET file_path = '{0}', validate='{1}' " +

        "where category_key = 2", settings.getAntivirus_filePath(), 

        settings.isAntivirus_validate());


查看完整回答
反對 回復 2022-09-21
?
慕姐8265434

TA貢獻1813條經驗 獲得超2個贊

將代碼修改為:


String query4 = MessageFormat.format(

            "UPDATE system_object SET file_path = \"{0}\", validate=\"{1}\" " +

            "where category_key = 2", "demo1", 

            "demo2");

    System.out.println(query4);

輸出:UPDATE system_object SET file_path = "demo1", validate="demo2" where category_key = 2


查看完整回答
反對 回復 2022-09-21
?
烙印99

TA貢獻1829條經驗 獲得超13個贊

只是一個更新使用雙''而不是單':


String query4 = MessageFormat.format(

        "UPDATE system_object SET file_path = '{0}', validate='{1}' " +

        "where category_key = 2", settings.getAntivirus_filePath(), 

        settings.isAntivirus_validate());


查看完整回答
反對 回復 2022-09-21
  • 3 回答
  • 0 關注
  • 175 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號