mysql+python+pymysql的一些细节问题

报错

(1044, "Access denied for user 'erio'@'localhost' to database 'library'")

就是权限问题了,没什么好说的,,,换成了root //或许也可以给erio权限

SQL SERVER 有ntext类型,mysql中无,直接使用 text

插入数据时报错:

%d format: a number is required, not str

我看了一下,要插入的table 的数据类型是int,然后传送的数据类型也是int,按理来说不应该报错啊。然后去网上搜了一下https://www.douban.com/note/206462446/

,这里说只要传送的格式对了就可以,INSERT INTO 全写%S。然后修改了代码,解决了问题

另外还修改了 set NUM =%S  (原来是&d)

传入以下格式的字典
    book_msg{
        'BID': str,
        'BNAME': str,
        'AUTHOR': str,
        'PUBLICATION_DATE': str,
        'PRESS': str,
        'POSITION': str,
        'SUM': int,
        'CLASSIFICATION': str
    }

INSERT
        INTO book
        VALUES(%s, %s, %s, %s, %s, %s, %s, %s)
        ''', (
            book_info['BID'],
            book_info['BNAME'],
            book_info['AUTHOR'],
            book_info['PUBLICATION_DATE'],
            book_info['PRESS'],
            book_info['POSITION'],
            book_info['SUM'],
            book_info['SUM']
        ))

然后是cursor 的问题

我不知道怎么样同时拼接多条语句,比如这样会报错

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version

        cursor.execute('''
        # USE Library
        # CREATE TABLE student(
        #     SID char(15) PRIMARY KEY,
        #     PASSWORD char(70),
        #     SNAME text,
        #     DEPARTMENT nchar(20),
        #     MAJOR nchar(20),
        #     MAX int
        # )
        # CREATE TABLE administrator(
        #     AID char(15) PRIMARY KEY,
        #     PASSWORD char(70)
        # )
        ''')        

还不知道怎么解决,就只能每个事务都分开然后最后commit了。这样有些麻烦

cursor.execute('''
        CREATE TABLE classification(
            BID char(15),
            CLASSIFICATION nchar(15),
            PRIMARY KEY(BID, CLASSIFICATION)
        )
        ''')
cursor.execute('''
        INSERT
        INTO administrator
        VALUES('admin', '123456')
        ''')

conn.commit()
原文地址:https://www.cnblogs.com/lqerio/p/12180227.html