使用Python Connector查询变量

时间:2015-03-27 17:58:53

标签: mysql python-3.x mysql-connector-python

我是python的新手,我有一个我无法解决的简单问题。 我在Windows平台,不幸的是我不能改变这个工作原因。我必须连接到许多mysql表,并使用提取的数据做一些事情。我有的代码:

conn = mysql.connector.Connect(host='<ip>',user='<user>',\
       password='',database='<my database>')

c = conn.cursor()

c.execute ("select field from TABLE")

results = c.fetchall()


for row in results:
    c.execute("select * from otherTable where nodo = %s",(str(row[0])))
    if c.rowcount == 0:
        doSomething()
    else:
        doOtherThing()

c.close()

当我使用Python34运行时,我收到错误:

&#34;你的sql synthax有错误;检查与你的mysql服务器版本相对应的手册,以便合适的合成器使用在&#39;%s&#39;附近。在第1行

感谢

1 个答案:

答案 0 :(得分:0)

你需要在%s周围加上单引号:c.execute("select * from otherTable where nodo = '%s'",(str(row[0])))

您还应该考虑将查询放在变量中,然后执行它:

query = ("select * from otherTable where nodo = '%s'",(str(row[0])))

c.execute(query)

这种方式有助于防止潜在的SQL注入攻击并允许您执行print(query),以便在出现错误时调试sql语句。