Python mysql 是准备好的语句还是我需要 escape_string()?

标签 python mysql

这也是:

cursor.execute("Insert INTO visit (pid, date, diagnosisid) VALUES (%s,%s,%s)",
(pid, date, diagnosisid))

足够还是我需要:

cursor.execute("Insert INTO visit (pid, date, diagnosisid) VALUES (%s,%s,%s)",
(escape_string(pid), escape_string(date), escape_string(diagnosisid)))

?

最佳答案

第一个就够了;第二个会让你的努力加倍,取代例如"\"。你可以自己测试一下

>>> c.execute("SELECT %s, %s", ('"', MySQLdb.escape_string('"')))
1L
>>> c.fetchall()
((u'"', u'\\"'),)

所以你看到第二个版本会在 " 之前产生一个不需要的 \。所以第一个没问题。

关于Python mysql 是准备好的语句还是我需要 escape_string()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9113894/

相关文章:

javascript - 获取 `url` 的访问被 CORS 策略 : No 'Access-Control-Allow-Origin' header is present on the requested resource. ReactJS 阻止

php - 从数据库中检索数据的最有效算法

mysql - mysql 中的前导零

mysql - 将两个相似的行合并为一个新列

php - 通过ajax分割输出值,

mysql - 如何删除mysql中的开始字段空间?

python - 如何读取 flask 中的多部分/表单数据

python - 根据 pandas 数据框中的条件将单元格拆分/分解为多行

python - 从 numpy 数组中删除子数组

java - mysql插入和更新查询中的单引号和双引号(java)