skip to Main Content

I am trying to retrieve a value from a table stored in Mysql database using python(pycharm). But instead of outputting the stored value it outputs number of rows instead.

import pymysql
connection = pymysql.connect(host='localhost',
                             user='root',
                             password='passw',
                             database='database1',
                             charset='utf8',
                             port=3306
                             )
x=connection.cursor()
select = x.execute('''SELECT
    update_id
FROM
    telegram;
''')
print(select)

Output: 1 

^Wrong output(Output equals number of rows). As I keep adding on rows the output changes to the number of rows but never returns the value stored.

The command works from MySql perfectly.

SELECT
        update_id
    FROM
        telegram;
Output:233

^This is the correct output.
Why is this happening? What changes should I make in my python code?

2

Answers


  1. According to the documentation on pymysql, this is how you are supposed to do the print out:

        sql = "SELECT `id`, `password` FROM `users` WHERE `email`=%s"
        cursor.execute(sql, ('[email protected]',))
        result = cursor.fetchone()
        print(result)
    

    enter image description here

    You are missing “cursor.fetchone()”

    I hope that helps

    Login or Signup to reply.
  2. According to the documentation, cursor.execute() returns the number of affected rows. You then need to fetch the content with fetch() or fetchall(). See the example at PyMySQL.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search