不能从mysql表中读取任何数据,但我可以插入它

问题描述 投票:0回答:1

我使用python mysql.connector,我能够插入到表中,并通过DBeaver(数据库管理器)检查并验证数据提交。然而,如果我试图从表中读取SELECT,我得到'None'。我不知道从这里开始我可以做什么。

我的代码。

import mysql.connector, config

# declare vars
cfg = config.Setting(config.argparser())
sql_username = cfg.get_setting('sql', 'username')
sql_password = cfg.get_setting('sql', 'password')
sql_host = cfg.get_setting('sql', 'host')
sql_db = cfg.get_setting('sql', 'db')
db_config = mysql.connector.connect(user=sql_username, password=sql_password, host=sql_host, database=sql_db)
cursor = db_config.cursor(buffered=True)
print(cursor.execute('SELECT "date_created", "date_due", "title", "completed"'
               'FROM remind;'))


# query function, checks for errors, returns result of query
# columns: id | date_created | date_due | title | completed
#
def insert(db_id: object, db_table: object, date_created: object, date_due: object, title: object,
           completed: object) -> object:
    try:
        stmt = ("INSERT INTO " + db_table +
                "(id, date_created, date_due, title, completed) "
                "VALUES (%(id)s, %(date_created)s, %(date_due)s, %(title)s, %(completed)s)")
        data = {
            'id': db_id,
            'date_created': date_created,
            'date_due': date_due,
            'title': title,
            'completed': completed
        }
        query_result = cursor.execute(stmt, data)
        db_config.commit()
    except mysql.connector.Error as err:
        query_result = ("Insert Query: Something went wrong: {}".format(err))
    return query_result
python mysql mysql-connector
1个回答
0
投票

cursor.execute() 会执行select查询。返回类型是None,意味着 执行通过.

如果你想看看结果,可以试试 cursor.fetchall(). 这将获取结果集中的所有行。

cursor.execute('SELECT "date_created", "date_due", "title", "completed"'
               'FROM remind;')
resultSet = cursor.fetchall()
for row in resultSet:
    print(row)
© www.soinside.com 2019 - 2024. All rights reserved.