0

Why every parametr (string) which i try to puy instead '(?)' python gives me this problem?

item2 = str(message.sender.username)

print(message.sender.username)

sqlloc = ("create table (?) (" \
        " chat_id INTEGER NOT NULL PRIMARY KEY,"\
        " locpar varchar(20)," \
        " stoppar varchar(20)," \
        " locdes varchar(20) ," \
        " stopdes varchar(20));", item2)

connloc.execute(sqlloc)

Outuput:

Abdul_gan
operation parameter must be str
Abdul Gandal
  • 97
  • 1
  • 7

1 Answers1

0

This is how I generally create tables on the fly with a table name string parameter:

def create_table(ptbl):

    """ Assemble DDL (Data Definition Language) Table Create statement and build
        sqlite3 db table

    Args:
        string: new db table name.

    Returns:
        Status string, '' or 'SUCCESS'.
    """
    retval = ''
    sqlCmd = ''
    try:
        conn = sqlite3.connect(sqlite_file)
        c = conn.cursor()

        if ptbl == 'TBL_MASTER':

            sqlCmd = 'CREATE TABLE IF NOT EXISTS ' + ptbl + ' (ID INTEGER, FILESET TEXT, SSTA TEXT, GRP TEXT, ' \
                                                            'DCT TEXT, ' \
                                                            'DEVCOM TEXT, DEVRTU TEXT, DNPRTU TEXT, AP0 TEXT, ' \
                                                            'SP0 TEXT, AP1 TEXT, SP1 TEXT, AP2 TEXT, SP2 TEXT, ' \
                                                            'AP3 TEXT, SP3 TEXT, AP4 TEXT, SP4 TEXT, AP5 TEXT, ' \
                                                            'SP5 TEXT, AP6 TEXT, SP6 TEXT)'

        else:
            pass

        if sqlCmd != '':
            c.execute(sqlCmd)
            conn.commit()
            conn.close()

        retval = 'SUCCESS'

    except Error as e:

        retval = 'FAIL'
        print(e)

    return retval
FisheyJay
  • 442
  • 4
  • 10