python - sqllite3 中的参数
问题描述
为什么我尝试使用 '(?)' python 的每个参数(字符串)都给我这个问题?
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)
输出:
Abdul_gan
operation parameter must be str
解决方案
这就是我通常使用表名字符串参数动态创建表的方式:
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
推荐阅读
- azure - HashiCorp Vault 使用 Azure Vault 自动解封 - 仍然显示 - 恢复密封类型为 shamir
- javascript - Reactjs Material Table Tree模式在添加行数据时挂起
- c++ - c ++的无效字符串初始化
- c# - 比较 LINQ 实体框架中的日期
- angular - 从父组件和兄弟组件访问元素引用的角度方式 - 错误类型错误:未定义
- sql - 当某些值为 NULL 时,在 SQL Select 语句中计算 AVG
- php - PHP - 使用多个订单数组进行排序?
- python - Docker uwsgi Django no python application found 错误
- vue.js - 如何在最后使用 VueJs 设置值变量
- python - Selenium 无法在字段集中定位元素