import mysql.connector
from mysql.connector import Error
import json

MYSQL_CONFIG = {
    'host': 'rm-bp19uc56sud25ag4o.mysql.rds.aliyuncs.com',
    'database': 'longvideo',
    'port': 3306,
    'user': 'wx2016_longvideo',
    'password': 'wx2016_longvideoP@assword1234',
}


def insert_content(gpt_res):
    """ 连接MySQL数据库并插入一行数据 """
    try:
        # 连接MySQL数据库
        conn = mysql.connector.connect(
            host=MYSQL_CONFIG['host'],
            database=MYSQL_CONFIG['database'],
            user=MYSQL_CONFIG['user'],
            password=MYSQL_CONFIG['password'],
        )

        if conn.is_connected():
            print('成功连接到数据库')
            cursor = conn.cursor()

            # 插入数据的SQL语句
            insert_query = """
            INSERT INTO video_content(video_id,key_words,search_keys,extra_keys,category_list,tone,target_audience,target_age,target_gender,address,theme)
            VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)
            """
            # 准备要插入的数据,转换字典列表为元组列表
            data_to_insert = [
                (
                    gpt_res.get('video_id', ''),
                    json.dumps(gpt_res.get('key_words', ''),
                               sort_keys=True, ensure_ascii=False),
                    json.dumps(gpt_res.get('search_keys', ''),
                               sort_keys=True, ensure_ascii=False),
                    json.dumps(gpt_res.get('extra_keys', ''),
                               sort_keys=True, ensure_ascii=False),
                    json.dumps(gpt_res.get('category', ''),
                               sort_keys=True, ensure_ascii=False),
                    str(gpt_res.get('tone', '')),
                    str(gpt_res.get('target_audience', '')),
                    str(gpt_res.get('target_age', '')),
                    str(gpt_res.get('target_gender', '')),
                    str(gpt_res.get('address', '')),
                    str(gpt_res.get('theme', ''))
                )
            ]

            # 执行批量插入操作
            cursor.executemany(insert_query, data_to_insert)
            print('数据插入成功')

            # 提交事务
            conn.commit()
    except Error as e:
        print('数据库连接或操作出错:', e)
    finally:
        if conn.is_connected():
            cursor.close()
            conn.close()
            print('数据库连接已关闭')


# 执行函数
# connect_insert()