当前位置: 首页 > 面试题库 >

执行中的Python sqlite3字符串变量

江温书
2023-03-14
问题内容

我尝试在Python中执行此sqlite3查询。我将代码减少到最小,sqlite.connect等有效。

column = 'Pron_1_Pers_Sg'
goal = 'gender' 
constrain = 'Mann'


with con:
    cur = con.cursor()

    cur.execute("SELECT ? FROM Data where ?=?", (column, goal, constrain))
    con.commit()

    rows = cur.fetchall()

    for element in rows:
        values.append(element)

这将返回一个空列表。如果我对字符串进行硬编码,它将起作用并返回值。


问题答案:

参数标记只能用于表达式,即值。您不能将它们用于表和列名之类的标识符。

用这个:

cur.execute("SELECT "+column+" FROM Data where "+goal+"=?", (constrain,))

或这个:

cur.execute("SELECT %s FROM Data where %s=?" % (column, goal), (constrain,))

(并且不要在实际访问完数据之前提交。)



 类似资料:
  • 问题是如何使testowy变量作为字符串工作?

  • 我试图弄清楚为什么我的查询没有运行,如果运行了;为什么它不返回任何信息。我在wordpress multisite上运行这个查询是基于一个插入,通过所有网络站点并检索主站点中的所有帖子,这部分工作很好。我创建了一些代码,将两个变量合并为一个变量,以创建一个表名,如果我回显该变量,它将正确显示表名,但当我在查询中插入相同的变量时,注意到甚至会发生表已经存在于DB中的情况。代码如下: 提前道谢。

  • 问题内容: 我将页面内容保存在数据库中,并希望执行字符串中的任何php代码。因此,如果我的字符串是: 我只想执行。使用eval()将尝试执行。 有什么办法吗? 问题答案: 不用说,您应该尽快找到另一个解决方案。同时,您可以像这样评估代码: 演示:http://codepad.org/ao2PPHN7 我不能足够强调:eval是危险的,应用程序代码不应位于数据库中。尝试使用模板解析器,例如Smart

  • 我试图让一个语句起作用,但由于某些原因,它不起作用。应该很简单。 假设字符串 我的代码是: 两种规格的结果都是1。

  • 内建函数 eval 允许执行一个代码字符串。 语法如下: let result = eval(code); 例如: let code = 'alert("Hello")'; eval(code); // Hello 代码字符串可能会比较长,包含换行符、函数声明和变量等。 eval 的结果是最后一条语句的结果。 例如: let value = eval('1+1'); alert(value); /

  • 问题内容: 在Python中,编写代码很繁琐: 我可以在Python中做类似的事情吗? 问题答案: Python 3.6+确实具有变量插值-在您的字符串前添加: 对于低于此版本的Python版本(Python 2-3.5),您可以用来传递变量: