python - 如果不存在使用 Python(PyMySQL) 将值插入 MySQL 数据库
问题描述
我正在尝试从现有数据库中获取值,如果不存在也将值插入到数据库中。
此代码可以正常获取值的值,但我无法将值插入数据库..
import pymysql
connection = pymysql.connect(
host='localhost',
user='root',
password='',
db='chatbotqad',
)
user_input=input('Enter :')
print(user_input)
try:
with connection.cursor() as cursor:
sql = "SELECT * FROM `qans` WHERE `Questions` = ('%s') " % user_input
try:
cursor.execute(sql)
result = cursor.fetchall()
if not cursor.fetchone():
sqli = "INSERT INTO `qans` VALUES (%s)" % user_input
cursor.execute(sqli)
print("Que\t\t Answer")
print("-------------------------")
for row in result:
print(str(row[0]) + "\t\t" + row[1])
except:
print("Oops! Something wrong")
connection.commit()
finally:
connection.close()**strong text**
解决方案
我终于找到了这个解决方案。
import pymysql
connection = pymysql.connect(
host='localhost',
user='root',
password='',
db='chatbotqad',
)
user_input=input('Enter input:')
try:
with connection.cursor() as cursor:
sql = "SELECT * FROM `qans` WHERE `Questions` = ('%s') " % user_input
try:
if (cursor.execute(sql)==0):
result = cursor.fetchall()
Ans_input=input('Please enter Answer:-')
sql = "INSERT INTO `qans` (Questions, Answers) VALUES (%s,%s)"
try:
cursor.execute(sql, (user_input,Ans_input))
print("Task added successfully")
except:
print("Oops! Something wrong")
else:
cursor.execute(sql)
result = cursor.fetchall()
print("Que\t\t Answer")
print("-------------------------")
for row in result:
print(str(row[0]) + "\t\t" + row[1])
except:
print("Oops! Something wrong")
connection.commit()
finally:
connection.close()
推荐阅读
- c# - 有没有办法测量 netcore webAPI 服务器(Krestel)的启动时间?
- sql - 有没有办法根据某些值将行分成组?
- html - 使用网格创建列但不显示两列
- java - org.openqa.selenium.NoSuchSessionException:会话 ID 为空。- 在自动化中出现此错误(使用 testng、selenium、java)
- c# - 在 View 中使用 DropDownListFor 时如何解决空值?
- r - R中的txt文件导入问题
- python - 如何在 C++ 中使用生成的 tf.keras(for tf version>2) 模型
- java - 例外:蓝牙设备未准备好
- javascript - 一次懒加载Vue组件,保留数据
- android - NoSuchMethodError:在 null 上调用了 getter 'document'?