Nup*_*pur 14 python mysql mysql-python
我在本网站上已经以各种方式看到了这个问题,但它们都没有完全解决我的问题.
我有一个带有单引号的sql语句,并且在使用它进行数据库查询之前尝试使用推荐的做法.所以声明就像
val2="abc 'dostuff'"
sql="INSERT INTO TABLE_A(COL_A,COL_B) VALUES(%s,'%s')" %(val1, val2)
a_cursor.execute(sql)
Run Code Online (Sandbox Code Playgroud)
但是,当我运行这个时,我得到..
ProgrammingError: (1064,"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'dostuff'.
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?非常感谢Nupur
Mar*_*ers 43
使用参数而不是字符串插值来确保数据库连接器正确转义您的值:
sql = "INSERT INTO TABLE_A(COL_A,COL_B) VALUES(%s, %s)"
a_cursor.execute(sql, (val1, val2))
Run Code Online (Sandbox Code Playgroud)
mysqldb sql参数样式使用与python字符串格式化运算符相同的语法,这有点令人困惑.
| 归档时间: |
|
| 查看次数: |
16938 次 |
| 最近记录: |