python sqlite中的问题
cx.text_factory=str
B = '哈哈'
cu.execute('''create table IF NOT EXISTS catalog(Id integer PRIMARY KEY,
Name char(10),Country text DEFAULT '中国')''')
cu.execute('INSERT INTO catalog(Name) Values('+B+')')
cx.commit()
cu.execute('select * from catalog')
rs = cu.fetchall()
print '2:',
print rs
为什么 会出现这个错误啊 no such column: 哈哈
追问:加了的话 也是不行的哦~~方便 留个QQ嘛?
贴不上来=.=之前没有这个表的 '''create table IF NOT EXISTS catalog 这句话 就是判断是否有这个表!是中文的问题 如果把'哈哈'改成'11' 就可以存入! 是不是表的格式有错误? 如果把
cu.execute('INSERT INTO catalog(Name) Values('+B+')')
改成
cu.execute('INSERT INTO catalog(Name) Values("哈哈")')
也是可以存进去的
答案:因为你要插入的是字符串,但是按照你现在这样的写法,两边就少了引号,字符串要加引号才行。
其他:是不是你之前就有这个表了,而且这个表里面压根就没有Name这个字段?
你用的语法是没有这个表的时候才创建。
在create之前再执行一条语句试试
cu.execute('drop table catalog;')
或者看下系统里面真正创建这个表的sql语句是什么:
cu.execute('select sql from sqlite_master where type='table' and name='catalog';')
上一个:django dbshell 使用sqlite的时候报错: 'sqlite3' 不是内部或外部命令,也不是可运行的程序 或批处理文件
下一个:JDBC 连接SQLite3 报java.sql.SQLException: out of memory异常