添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

当python导入数据进入sqlite数据库时出现near “%“:syntax error错误或者no such column时的解决办法

no such column错误时:

    # sql = '''insert into move(title,评分,主题) values (%s,%s,%s)
    # ''' %(name,rank,subject)
    # self.c.execute(sql)
    self.conn.commit()
    return item

出现no such column时,记得把是中文类型的%s加多双引号(“”)
改为以下代码:

sql = ‘’'insert into move(title,评分,主题) values (%s,%s,%s)

    # ''' %(name,rank,subject)
    # self.c.execute(sql)

near “%“:syntax error错误:

    self.conn.commit()
    return item
def wirte(self):  # executemany出现数据库操作出现 near "%": syntax error错误使用?代替%S
    self.c.executemany(
        '''insert into test (title,评分,主题) values (%s,%s,%s)
''', self.data

出现 near “%“:syntax error时,记得把是中文类型的%s加多双引号(“”)
改为以下代码:
self.c.executemany(
‘’‘insert into test (title,评分,主题) values (?,?,?)
‘’’, self.data

同事在使用python3操作sqlite出现了异常,具体代码缩减如下: import sqlite3 conn = sqlite3.connect('star.db') cursor = conn.cursor() insert_sql = 'insert into user(id,name) values (%s,%s)' cursor.execute(insert_sql,(1,'小麦')) 一看错误提示就是语法错误,还在%附近,笔者之前写过一篇python3操作数据库的文章中,提到过,sqlite的占位符请使用 ?,重要的事情就不说三遍了。获取更多知识,可以关注我的公众号:码农小麦 最近学Unity,用到SQLite作为数据库,使用的脚本都是@秦元培和@雨松MOMO的脚本,但在进行插入运算出现了一个error, 即“SqliteException: SQLite error no such column:”。 弄了好久,发现是 变量string缺少 '',有候向数据库中插入一些值,一定要注意对text类型的字段的插入,如果使用的是这样的sql : insert in SELECT tablename._id tablename._name FROM tablename WHERE tablename._name='somename' 1、名为tablename的表中没有_name这一列; 2、由于_name是TEXT类型的,WHERE语句中的 'somename'没有添加单引号''也会导致这种错误。 转载于:https://www.cnblogs... Console  LogCat  报错信息: 02-23 11:20:41.360: ERROR/AndroidRuntime(4366): android.database.sqlite.SQLiteException: no such column: iphone: , while compiling: ... def createDataBase(): cn = sqlite3.connect('check.db') cn.execute('''CREATE TABLE IF NOT EXISTS TB_CHECK (ID integer PRIMARY KEY AUTOINCREMENT, NUMBER INTEGER, ITEM TEXT, REFERENCE TEXT, SUMMARY TEXT, OBJECT TEXT, METHOD TEXT, CONDIT 经核实,语法并没有问题,问题来自于Left是SQL Server的内部函数,SQLite并不支持Left,几番调试之后,发现 left 是 SQLite 的保留字(LEFT JOIN),left 的功能可以使用SQLite中的substr函数来代替。 就是这句sql,在mysql中很正常的,换到了sqlite中报错,查询了结果得到left在sqlite中不适用,更换为substr关键词就可以了.刚开始报错的候都以为原来的sql有问题了,仔细看了看应该不至于,就想了想是不是新换的数据库不适用这种sql,一查一个准.问题解决。项目优化,数据库由mysql更换为sqLite,一个很简单的统计sql报错, 用 sqlite expert professional 编辑sqlite 脚本,在sqlite命令行内读入运行,有同一个文件会出现 near"?":syntax error 的问题,一般出现在文件开头,但是开头位置根本没有"?",怀疑是文件保存编码之类的问题,目前解决办法是新建个文件,将sql语句复制进去,重新保存运行即可。 PersonRec与FeatureRec是一对多的关系 PersonRec personRec = LitePal.where("personId = ?", personId) .findFirst(PersonRec.class); 这里的personRec查出来是不空的,然后为这条记录更新数据 personRec.setPersonInfo(personInfo).save(); 更新成功了,最后为它增加一条关联记录FeatureRec boolean isFeatureSaved = 其实,这是一个非常容易解决掉的问题。在我看来,似曾相识,呵呵,最近学JavaScript可是学会了使用var声明变量。 其实,在PHP中根本不需要使用var声明的,但是当一个变量作为一个类的成员变量的候,使用var还是没有问题的。 在外部使用var就报错Parse error: syntax error, unexpected T_VAR in…,例如我的出错信息: Parse error: syntax error, unexpected T_VAR in D:\Apache2.2\htdocs\shirdrn\page\p2\pageUtil.inc on line 34 我在测试:在 python 使用executemany对数据库操作出现 near "%": syntax error错误问题描述解决方法问题解决 python中使用sql语句 sql = 'insert into test (id,name,age) values (%s, %s, %s)' args = [(1, "Jason", 22), (2, "Lily", 24)] 对数据库使用executemany批量操作 cur.executemany(sql, args) 出现下列错误 conn = sqlite3.connect('test.db') cur = conn.cursor() cur.execute("INSERT INTO table_name... 由于程序的启动目录是你的/bin/Debug 目录,所以你如果将你的数据库 没有放到目录下的话,就会出现找不到表的情况!! 但是为什么 不是找不到 数据库呢,这是因为程序在运行的候,应该自动将数据库资源拷贝到相应的 /bin/Debug 目录下的呀, 这里你需要 将你的数据库在运行的候 复制到生成目录,即可。(将不复制,改为其他项)。 多分享,多受益。 我为人...