mysql文字エスケープ


Mysql文字エスケープ
文字列には、特定のシーケンスに特別な意味があります.これらのシーケンスは、いわゆるエスケープ文字である反斜線('')で始まります.MySQLは次のエスケープシーケンスを認識します.
\0
ASCII 0(NUL)文字.
\'
一重引用符(''').
\"
二重引用符(''').
\b
チェックボックスをオフにします.
改行記号
\r
リターン?マーク
\t
tab文字.
\Z
ASCII 26(コントロール(Ctrl)-Z).この文字は、WindowsでASCII 26がファイルの末尾を表す問題を解決するために「Z」として符号化できます.(mysql db_name file_nameを使用しようとすると、ASCII 26に問題が発生します).
\\
反斜線('')文字.
\%
'%'文字.表の後の注記を参照してください.
\_
‘_’文字.表の後の注記を参照してください.
これらのシーケンスは大文字と小文字に敏感です.例えば、「b」は退格と解釈されるが、「B」は「B」と解釈される.
pythonプログラムでは、文字列に特殊な文字が表示されている場合は、エスケープする必要があります.
"""
      description     sql          
"""
import pymysql
import pandas as pd
df = pd.DataFrame(pd.read_excel("        desc    1129.xlsx"))
print(df.info())
for i in df.index:
    product_id = df.loc[i,"product_id"]
    desc = str(df.loc[i,"new_description"])
    desc = desc.replace("\\","\\\\")
    desc = desc.replace("\'","\\\'")
    desc = desc.replace("\"","\\\"")
    desc = desc.replace("

","\
") desc = desc.replace("\r
","\
") desc = desc.replace("
","\
") desc = desc.replace("\t","\\t") desc = "'"+desc+"'" df.loc[i,"r_desc"] = desc sql = 'update p_attribute set ga_desc =%s where product_id = %d;'%(desc,product_id) df.loc[i,"sql_desc"] = sql df.to_excel(" sql 1129.xlsx",index=False) with open(" sql .txt","w",encoding="utf-8") as fp: dfsql = df["sql_desc"] for sql in dfsql: fp.write(sql+"

")