1. def insert():
  2. conn = sqlite3.connect("sqlite.db")
  3. print "open database passed"
  4. table_create = '''
  5. CREATE TABLE COMPANY
  6. (ID INT PRIMARY KEY,
  7. NAME TEXT,
  8. AGE INT,
  9. ADDRESS CHAR(50),
  10. SALARY REAL
  11. );
  12. '''
  13. conn.execute(table_create)

上面定义了一个表。

  1. temp="2017-12-12"
  2. paul="INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES(1,%s,32,'CALIFORNIA',2000.00);" %temp #这里用python的变量替换
  3. conn.execute(paul)
  4. conn.commit()
  5. conn.close()

生成了一个数据库后,查看里面的数据,发现 ID=1 下的name值是1993。 开始的时候觉得很奇怪。 记过不断替换,后面调试才发现了问题。

尝试直接打印paul语句:

print paul

输出的是:

  1. INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES(1,2017-12-12,32,'CALIFORNIA',2000.00);

看到了吗?

  1. 2017-12-12
  2.  
  3. 这样看来就知道问题了,原来语句中如果是字符的话,应该要加入“”。 问题出在这里。
  4.  
  5. 所以 在变量替换语句中 添加一个 “”就 把问题解决了。
  1. paul="INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES(1,\"%s\",32,'CALIFORNIA',2000.00);" %myname

另外一种方法更加简单: 就是在execute语句中把变量全部用(?) 表示,这样就不用每一个变量都使用“”  来添加。

原问题地址:http://www.30daydo.com/question/18

python sqlite 插入的数据含有变量,结果不一致的更多相关文章

  1. 数据测试001:利用python连接数据库插入excel数据

    数据测试001:利用python连接数据库插入excel数据 最近在做数据测试,主要是做报表系统,需要往数据库插入数据验证服务逻辑,本次介绍如何利用python脚本插入Oracle和Mysql库中: ...

  2. SQLite 插入大量数据慢的解决方法

    sqlite 插入数据很慢的原因:sqlite在没有显式使用事务的时候会为每条insert都使用事务操作,而sqlite数据库是以文件的形式存在磁盘中,就相当于每次访问时都要打开一次文件,如果对数据进 ...

  3. Python实现单链表数据的添加、删除、插入操作

    Python实现单链表数据的添加.删除.插入操作 链表的定义: 链表(linked list)是由一组被称为结点的数据元素组成的数据结构,每个结点都包含结点本身的信息和指向下一个结点的地址.由于每个结 ...

  4. Python MySQLdb 插入数据

    其实python链接MySQL的方法很多,比较常用的是MySQLdb这个模块,由于自己准备往数据库里面插入一条日期数据,在格式化的日期数据的时候一直报错,所以这里简单写了一个往MySQL数据库的插入数 ...

  5. 解决Python向MySQL数据库插入中文数据时出现乱码

    解决Python向MySQL数据库插入中文数据时出现乱码 先在MySQL命令行中输入如下语句查看结果: 只要character_set_client character_set_database ch ...

  6. Python MySQLdb 使用utf-8 编码插入中文数据

    参考地址:http://blog.csdn.net/dkman803/article/details/1925326/ 本人在使用python,mysqldb操作数据库的时候,发现如下问题,编码如下: ...

  7. Sqlite插入、修改、删除表里面的数据

    转载 2014年05月10日 10:38:21 标签: sqlite3 / 数据库 8688 转自:http://www.cnblogs.com/myqiao/archive/2011/07/13/2 ...

  8. python 向MySQL里插入中文数据

    用python向MySQL中插入中文数据出错,原代码片段: 1 db = MySQLdb.connect("localhost","root","12 ...

  9. python插入mysql数据(2)

    python插入mysql数据(2) """插入操作""" import pymysql import datetime from pymy ...

随机推荐

  1. 【JAVA】【leetcode】【查找二叉树最小深度】

    题目:  minimum-depth-of-binary-tree 要求:Given a binary tree, find its minimum depth.The minimum depth i ...

  2. 《精通C#》第十三章 对象的生命周期

    在C#中,程序员无法直接在C#中删除一个托管对象,因为C#不提供这个功能,那么类的实例就需要通过CLR调用垃圾回收机制进行清除,回收内存..NET垃圾回收器会压缩空的内存块来实现优化,为了辅助这一功能 ...

  3. SharePoint Foundation 2013 安装出错

    前段时间装foundation 13的时候遇到这个问题.怀疑是Office的问题.然后找了一些资料,问题得到了解决 解决方案: 运行 regedit,删除注册表下的office的LicenseType ...

  4. ROS的单线程Spinning和多线程Spinning

    单线程Spinning ros::spin()是最简单的单线程自旋, 它会一直调用直到结束 用法:  ros::spin(); 另一个单线程spinning是ros::spinOnce(),它定期调用 ...

  5. SWM格式稀疏权重矩阵转换为方阵形式全过程分享

    在进行空间统计实验过程中,经常涉及到空间权重矩阵的处理,有时候需要将ArcGIS生成的swm格式的权重矩阵转换为形如“0 1”的方阵格式.这里将我的办法整理出来. 1.用如下工具箱生成swm格式的权重 ...

  6. 二:基础概述netty

    如果不了解netty的,可以百度下,netty社区现在也比较活跃. 现在所谓的大数据,flume,storm等底层都是netty.   netty的性能模型: io模型---->异步非阻塞io ...

  7. PDF 补丁丁 0.5.0.2520 测试版发布:新春快乐!

    新的PDF测试版今天发布了. 新的测试版比旧测试版本增加了如下功能: 合并文件功能可以导出.导入文件列表,方便合并大量文件.一天干不完,保存一下,明天继续来. 合并文件功能可以统一已合并文件的旋转方向 ...

  8. jQuery 绑定事件

    $('input').bind('click mouseover', fn); $('input').bind({ mouseover: fn(){}, mouseover:fn(){} }); 删除 ...

  9. POJ 2528 Mayor's posters

    Mayor's posters Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Sub ...

  10. WCF初探-25:WCF中使用XmlSerializer类

    前言 在上一篇WCF序列化和反序列化中,文章介绍了WCF序列化和反序列化的机制,虽然WCF针对序列化提供了默认的DataContractSerializer序列化引擎,但是WCF还支持其他的序列化引擎 ...