none
MySQL使用ASCII新增資料錯誤? RRS feed

  • 問題

  • 各位高手

    我想請問,為什麼我使用

    "INSERT INTO `text` (`PCS/盒`) VALUES (@PCS" & Chr(47) & "盒);" 新增資料還是會錯誤呢??

    2018年1月17日 上午 07:01

解答

  • "INSERT INTO `text` (`PCS/盒`) VALUES (@PCS" & Chr(47) & "盒);" 結果是:
    "INSERT INTO `text` (`PCS/盒`) VALUES (@PCS/盒);"
    問題在其中的(@PCS/盒):

    (@PCS/盒)是參數名稱嗎? 若是, 斜線(/)是不合法的名稱字元, 應該還沒機會傳給 MySQL, 在 Visual Basic 就不通過了, 請改為合法命名的名稱.

    (@PCS/盒)是欄位內容嗎? 若是, 是不是應該用引號框起來改為 "INSERT INTO `text` (`PCS/盒`) VALUES (`@PCS/盒`);" ?

    以上個人猜測.


    Ader

    • 已標示為解答 燒腦袋 2018年1月23日 上午 12:56
    2018年1月17日 下午 01:52

所有回覆

  • 我剛剛一想天開,想說試試看

    "INSERT INTO `text` (`PCS/盒`) VALUES ('" & TextBox1.Text & "');"

    沒想到可以0.0

    但這因該不是說很正確吧? 因該?

    還是我那樣是正確的MySQL語法?

    2018年1月17日 上午 07:39
  • 我剛剛一想天開,想說試試看

    "INSERT INTO `text` (`PCS/盒`) VALUES ('" & TextBox1.Text & "');"

    沒想到可以0.0

    但這因該不是說很正確吧? 因該?

    還是我那樣是正確的MySQL語法?

    這樣的寫法有 SQL Injection 的疑慮。請參考

    https://msdn.microsoft.com/zh-tw/library/yy6y35y8(v=vs.110).aspx


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2018年1月17日 下午 12:17
    版主
  • "INSERT INTO `text` (`PCS/盒`) VALUES (@PCS" & Chr(47) & "盒);" 結果是:
    "INSERT INTO `text` (`PCS/盒`) VALUES (@PCS/盒);"
    問題在其中的(@PCS/盒):

    (@PCS/盒)是參數名稱嗎? 若是, 斜線(/)是不合法的名稱字元, 應該還沒機會傳給 MySQL, 在 Visual Basic 就不通過了, 請改為合法命名的名稱.

    (@PCS/盒)是欄位內容嗎? 若是, 是不是應該用引號框起來改為 "INSERT INTO `text` (`PCS/盒`) VALUES (`@PCS/盒`);" ?

    以上個人猜測.


    Ader

    • 已標示為解答 燒腦袋 2018年1月23日 上午 12:56
    2018年1月17日 下午 01:52