Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 散乱变量的MySQL查询的正确形式是什么?_Python_Mysql - Fatal编程技术网

Python 散乱变量的MySQL查询的正确形式是什么?

Python 散乱变量的MySQL查询的正确形式是什么?,python,mysql,Python,Mysql,我已经检查了与此相关的问题,但我似乎找不到任何有助于我解决问题的东西 # this is the code that comes before the mysql query select = request.args['select'] print select # ["c9", "TEMP"] c, conn = connection() print "connected" 在我实现这个查询之后,它不会生成任何数据 data = c.execute

我已经检查了与此相关的问题,但我似乎找不到任何有助于我解决问题的东西

    # this is the code that comes before the mysql query 
    select = request.args['select']
    print select # ["c9", "TEMP"]
    c, conn = connection()
    print "connected"
在我实现这个查询之后,它不会生成任何数据

data = c.execute("SELECT Client, %s, Date_Time FROM data WHERE Client = %s and Date_Time > '2016-04-26 18:17:15'", (select[1],select[0]))
# prints data = 0
这一个在我的sql查询中产生了一个错误

data = c.execute("SELECT Client, '%s', Date_Time FROM data WHERE Client = '%s' and Date_Time > '2016-04-26 18:17:15';", (select[1],select[0]))
# (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 \'\\"\'\', Date_Time FROM data WHERE Client = (\'[\') and Date_Time > \'2016-04-26 18:17\' at line 1')
这里也没有数据

data = c.execute("SELECT Client, '%s', Date_Time FROM data WHERE Client = %s and Date_Time > '2016-04-26 18:17:15';", (select[1],select[0]))
# prints data = 0
然而,只要把这个命令,它的工作没有变量

data = c.execute("SELECT Client, TEMP, Date_Time FROM data WHERE Client = 'c9' and Date_Time > '2016-04-26 18:17:15';")

那么我的错误在哪里呢?:/

不能在列列表中使用参数替换;您需要在那里使用普通的Python字符串格式

c.execute("SELECT Client, {}, date_Time FROM data WHERE Client = %s and Date_Time > '2016-04-26 18:17:15'".format(select[1]), select[0])

不能在列列表中使用参数替换;您需要在那里使用普通的Python字符串格式

c.execute("SELECT Client, {}, date_Time FROM data WHERE Client = %s and Date_Time > '2016-04-26 18:17:15'".format(select[1]), select[0])

感谢老板的即时回复,但我收到了这个错误1064,‘您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以获取正确的语法,以便在第1行“IDK为什么!请忽略我的最后一条注释,boss。行select=request.args['select']以字符串形式返回值,因此我必须使用ast库修复此问题。但是,修复后,我现在得到的并不是在字符串格式化期间转换的所有参数仍在使用:!c.executeSELECT Client,{},date_Time FROM data WHERE Client=%s and date_Time>'2016-04-26 18:17:15'。formatselect[1],[select[0]]老板,我们需要在最后添加括号以使其正常工作。请编辑答案,这样其他人就不会这样做了:谢谢老板的即时回复,但我收到了这个错误1064,“您的SQL语法有错误;请查看与您的MySQL服务器版本相对应的手册,以了解在\',日期\时间附近使用的正确语法第1行的数据Client=\'[\'和Date\u Time>\'2016-04-26 18:17:15\'\'为什么!请忽略我的最后一条评论,boss。行select=request.args['select']以字符串形式返回值,因此我必须使用ast库修复此问题。但是,修复后,我现在得到的并不是在字符串格式化期间转换的所有参数仍在使用:!c.executeSELECT Client,{},date_Time FROM data WHERE Client=%s and date_Time>'2016-04-26 18:17:15'。formatselect[1],[select[0]]老板,我们需要在最后加上括号才能让它生效。请编辑答案,这样其他人就不会再讨论这个问题了