python pymysql 插入数据

问题遇到的现象和发生背景 python pymysql 插入数据
问题相关代码,请勿粘贴截图 global d1
os.system('cls')
b = int(input('请输入您要借阅的书籍编号:'))
conn = pymysql.connect(host="localhost", database="test", user='root', password='20150235hjq', charset='utf8')
cursor = conn.cursor()
sql='select * from books where code=%s'%(b)
a2=cursor.execute(sql)
if a2 != 0:
    a = list(cursor.fetchone())
    a1=str(a[0])
    if a[4]>=1:
        c=a[4]-1
        sql1='update books set numberyu=%d where code=%d'%(c,b)
        sql3='insert into borrowlist(book,name,code) values(%s,%s,%d)'%(a1,d1,b)
        try:
            cursor.execute(sql1)
            cursor.execute(sql3)
            cursor.commit()
            print('借阅成功,请选择您的操作:1.返回主界面(进行其他操作)   2.退出登录')
            sleep(2)
            p = input('请输入:')
            if p == '1':
                student()
            elif p == '2':
                print('退出登录成功,请关闭此页面,欢迎下次登录!')
                sleep(2)
        except pymysql.Error as e:
            print(e)
            cursor.close()
            conn.close()
            print('借阅失败,请重新操作!')
            sleep(2)
            student()

    else:
        print('该书籍图书馆库存不足,无法借阅此书')
        print('请选择您要继续进行的操作:1.返回主界面  2.重新借阅  3.退出登录')
        while True:
            c = input('请选择您要继续进行的操作:')
            if c == '1':
                student()
            elif c == '3':
                print('退出登录成功,请关闭此页面,欢迎下次登录!')
                sleep(1)
            elif c == '2':
                sleep(1)
                borrow()
            else:
                print('输入错误,请重新开始')
                sleep(1)
                continue
运行结果及报错内容 (1054, "Unknown column '云边有个小卖部' in 'field list'")
我的解答思路和尝试过的方法
我想要达到的结果

改一下 sql 语句

sql3="insert into borrowlist(book,name,code) values('%s','%s',%d)"%(a1,d1,b)


d1 在哪个地方定义的, 貌似没看到