ArticleReplace/databases.py

87 lines
2.8 KiB
Python
Raw Normal View History

2025-10-25 16:45:02 +08:00
import pymysql
# ==============================数据库模块===================================
def check_link_exists(host, user, password, database, link):
"""
检查指定的 link 是否存在于 MySQL 数据库表中如果不存在则插入该链接
:param host: MySQL 数据库主机地址
:param user: MySQL 用户名
:param password: MySQL 密码
:param database: 数据库名称
:param link: 需要检查的链接
:return: 如果链接存在返回 True如果链接不存在且插入成功返回 False
"""
connection = None # 确保 connection 被初始化
try:
# 连接到 MySQL 数据库
connection = pymysql.connect(
host=host,
user=user,
password=password,
database=database
)
with connection.cursor() as cursor:
# 查询链接是否存在
cursor.execute("SELECT 1 FROM links WHERE link = %s", (link,))
result = cursor.fetchone()
# 如果链接存在
if result:
return True
else:
return False
except pymysql.MySQLError as e:
print(f"数据库错误: {e}")
return False
finally:
# 确保在结束时关闭连接
if connection:
connection.close()
def check_link_insert(host, user, password, database, link):
"""
检查指定的 link 是否存在于 MySQL 数据库表中如果不存在则插入该链接
:param host: MySQL 数据库主机地址
:param user: MySQL 用户名
:param password: MySQL 密码
:param database: 数据库名称
:param link: 需要检查的链接
:return: 如果链接存在返回 True如果链接不存在且插入成功返回 False
"""
connection = None # 确保 connection 被初始化
try:
# 连接到 MySQL 数据库
connection = pymysql.connect(
host=host,
user=user,
password=password,
database=database
)
with connection.cursor() as cursor:
# 查询链接是否存在
cursor.execute("SELECT 1 FROM links WHERE link = %s", (link,))
result = cursor.fetchone()
if result:
# 如果链接已经存在,返回 True
return True
else:
# 插入链接
cursor.execute("INSERT INTO links (link) VALUES (%s)", (link,))
connection.commit() # 提交事务
print("链接已插入")
return False
except pymysql.MySQLError as e:
print(f"数据库错误: {e}")
return False
finally:
# 确保在结束时关闭连接
if connection:
connection.close()