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
MySQL-python:SELECT返回“long”而不是查询_Mysql_Select_Mysql Python - Fatal编程技术网

MySQL-python:SELECT返回“long”而不是查询

MySQL-python:SELECT返回“long”而不是查询,mysql,select,mysql-python,Mysql,Select,Mysql Python,使用mysql-python在已建立的数据库上运行select查询时遇到问题。问题是,返回的是一个数字,Python称之为long,而不是查询的数据——应该注意,这个数字对应于我登录数据库并从MySQL运行查询以确保返回的记录数 代码如下: db = MySQLdb.connect(db = 'testdb', user='testuser', passwd='test', host='localhost', charset='utf8', use_unicode=True) dbc = db.

使用mysql-python在已建立的数据库上运行select查询时遇到问题。问题是,返回的是一个数字,Python称之为long,而不是查询的数据——应该注意,这个数字对应于我登录数据库并从MySQL运行查询以确保返回的记录数

代码如下:

db = MySQLdb.connect(db = 'testdb', user='testuser', passwd='test', host='localhost', charset='utf8', use_unicode=True)
dbc = db.cursor()
result = dbc.execute("""SELECT %s FROM example_movie""", ('title',))
urls = [row[0] for row in result]
最后一段代码url=[row[0]for row in result]是将所有内容放入一个列表中

错误如下所示:

 TypeError: 'long' object is not iterable
当我得到python打印结果时,它返回:

('RESULT:', 52L)
当我像strresult一样将结果括起来时,它只返回不长的数字52

非常感谢您的帮助和建议

dbc.execute的返回值不是select的结果;我相信这是结果中的行数。为了获得实际结果,您需要调用一个fetch方法。见文件

您应该将代码更新为:

db = MySQLdb.connect(db = 'testdb', user='testuser', passwd='test', host='localhost', charset='utf8', use_unicode=True)
dbc = db.cursor()
row_count = dbc.execute("""SELECT title FROM example_movie""")
results = dbc.fetchall()
urls = [row[0] for row in result]

嘿,谢谢你花时间回复!当我执行此操作时,它只打印一个大的[u'title,…,u'title]列表。有没有办法得到这些电影的片名?事实上!如果我只是执行dbc.execute,请从示例电影中选择标题,使其正常工作!与我使用的方法相反。我会把你的回答标为接受!请随意添加此位。@fortylash,不能参数化列名,参数变成字符串文字,您可以在输出中看到它们。