gpt4 book ai didi

python - 插入数据库 MySQL 时出现错误 "not all arguments converted during string formatting"

转载 作者:行者123 更新时间:2023-11-29 05:56:16 24 4
gpt4 key购买 nike

我有一个出现错误的 SQL 查询:

cur.execute("INSERT INTO `DB` (`ban`, `dntr`, `usrnm`, `id`, `dis`)  VALUES (1,0,?,?,?)",(param1,param2,param3,))

我不想在查询中使用 %s,因为它容易发生 SQL 注入(inject),而且我正在接受用户的输入。

最佳答案

mysqlclient 使用 %s 作为占位符(参见 example in the docs)。

将您的代码更改为以下内容:

cur.execute("INSERT INTO `DB` (`ban`, `dntr`, `usrnm`, `id`, `dis`)  VALUES (1,0,%s,%s,%s)", (param1,param2,param3,))

您对 SQL 注入(inject)的关注是对的,但是上面的内容没问题。您仍在使用带有参数的 execute,因此它们将被转义。

你不应该做的事情是cur.execute(query % parameters, [])。这很容易受到 SQL 注入(inject)攻击。

关于python - 插入数据库 MySQL 时出现错误 "not all arguments converted during string formatting",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49115569/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com