当行存在时,为什么rowcount返回-1?

时间:2019-08-15 14:51:06

标签: mysql python-3.x

我拼命尝试检查mysql数据库中是否存在python行。

我整个下午都在努力寻找答案!

令我印象深刻的是,几十年来,这种有用的功能如何无法正常工作!真是不可思议。我想专家会嘲笑我:-)。我是新手。所以我很想这个简单的问题。

我已经尝试了所有。我尝试了“ SELECT存在”,我尝试了“对行进行计数”以及许多其他内容.....计数行是最常见的,但是当我的数据库中已有行时,它将返回-1。我不明白!

我从pycharm和phpmyadmin中进行了测试。

我附上了屏幕截图。enter image description here

sql = "select * from websites where website = '" + item["website"] + "' limit 1"
self.curr.execute(sql, multi=True)
if self.curr.rowcount == 1:
    print("Website found")

有人可以告诉我如何检查mysql表中是否存在行吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

好的。我终于通过测试数百种东西找到了答案。我必须删除“ multi = True”。而且我想我必须添加“ self.cur.fetchall()”,如建议的@Raymond Nijland

这是最终有效的代码:

    sql = "select * from websites where website = '" + item["website"] + "'"
    self.curr.execute(sql)
    self.curr.fetchall()
    if self.curr.rowcount == 1:
          print("Website found")

谢谢大家为我提供帮助。