2016-11-05 123 views
4

这是我的MySQL数据库:它是否返回行数?

create table 'blogs' (
    'id' int(10) primary key auto_increment, 
    'title' varchar(29) not null, 
    'text' varchar(500) not null 
) engine=innodb default charset=utf8mb4; 

我用PyMySQL连接,然后我这样做:

cur = connection.cursor().execute('select title, text from blogs order by id desc') 

entries = [dict(title=row[0], text=row[1]) for row in cur.fetchall()] 

它提出这样的:

AttributeError: 'int' object has no attribute 'fetchall'

我尝试type(cur)显然我得到了int

我尝试print(cur),我得到了0

insert blogs(title,text) values ('222','qwqwqwq');print(cur) = 1

insert blogs(title,text) values ('333','qwqw222');print(cur) = 2

curblogs行之后?

而我该如何实现entries = [dict(title=row[0], text=row[1]) for row in cur.fetchall()]

帮助我,谢谢

+0

你为什么声明标题为30的最大长度?默认情况下,使用'VARCHAR(255)'作为默认值,加上常规的'INT',当扩展时为'INT(11)'。不确定'INT(10)'来自哪里。 – tadman

+0

我昨天才学会了MySQL ......我不知道如何以正确的方式使用它,就像英语一样。我知道了,谢谢@ ltay – Hasaker

+0

没有任何问题。只是试图给你一些指点,所以你以后不会再陷入混乱。 – tadman

回答

0

要回答你的问题:

是的,它的查询返回的数字,因为你要串联两个操作1)获取光标2)调用一个执行和指最终结果cur

2)操作将导致整数值给出的行数会受到影响存储在cur

相关问题