1. ホーム
  2. python

[解決済み] pymysql.err.IntegrityError を修正する方法。(1048, "カラム 'ProTitre' cannot be null")" Pythonでエラーを修正するには?

2022-02-07 20:45:09

質問内容

私はPythonでSQLを使うのはかなり初めてです。私はSQL DBに送信したいいくつかのデータを持っています。しかし、私は pymysql.err.IntegrityError: (1048, "Column 'ProTitre' cannot be null") というエラーが発生します。

を配置してみました。 titredescr を、Var data[] を置き、その後に data[] の上に cursor.execute(sql, data) .

そして、直接 sql = ("INSERT INTO projet (ProTitre, ProDescription) VALUES (%s, %s)", (self.sqlEntryTitreProjet, self.sqlEntryDescrProjet)) または cursor.execute(sql, self.sqlEntryTitreProjet, self.sqlEntryDescrProjet) .

def exemple(self):
    self.sqlEntryTitreProjet = "test1"
    self.sqlEntryDesrcrProjet = "test descr"

def myConnectin(self):
    self.connection = pymysql.connect(host='127.0.0.1',
                                 user='root',
                                 password='',
                                 db='bd_outiltesting',
                                 charset='utf8mb4',
                                 cursorclass=pymysql.cursors.DictCursor)


def addItemProjet(self):
    self.myConnection()
    titre = self.sqlEntryTitreProjet
    descr = self.sqlEntryDesrcrProjet
    sql = ("INSERT INTO projet (ProTitre, ProDescription) VALUES (%s, 
    %s)", (titre, descr))
    cursor = self.connection.cursor()
    cursor.execute(sql)
    self.connection.commit()
    print("cursor.description:", cursor.description)
    cursor.close()
    if self.connection.is_connected():
        self.connection.close()
        print("MySQL connection is closed")

pymysql.err.IntegrityError: (1048, "Column 'ProTitre' cannot be null")

解決方法は?

試してみてください。

sql = "INSERT INTO projet (ProTitre, ProDescription) VALUES (%s, %s)"
cursor = self.connection.cursor()
cursor.execute(sql, (titre, descr))

引数はタプル、リスト、ディクショナリーでなければなりません。