免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2372 | 回复: 7

python 插库问题? [复制链接]

论坛徽章:
0
发表于 2014-09-12 16:20 |显示全部楼层
从DB里 select出 一个字段内容,然后赋值一个变量如 tele.
tele内容如:
00876123456
02095539
139012340000



insert into test(phone) values('%s') % (tele) 这种不方不对,只能插入tele 中的一条数据。
QA:
1、现在问题是怎样把tele中的所有内容都插入到 test数据库的phone 字段里?
2、类似tele 有多个字段,都有好几行内容,都要插到test数据库相对应的字段上,有没有好点的方法?

论坛徽章:
0
发表于 2014-09-12 16:29 |显示全部楼层
result 为搜索出的结果,是个元组
  1. for a,b,c,d in result:
  2.    T =(a,b,c,d)
  3.    cursor.execute('insert into test(A,B,C,D) values('%s,%s,%s,%s')',T)
复制代码

论坛徽章:
0
发表于 2014-09-12 16:35 |显示全部楼层
本帖最后由 ppjer 于 2014-09-12 16:39 编辑

回复 2# huangxiaohen

但现在内容是以下形式,print type(tele)  --><type 'unicode'>
tele内容如:
00876123456
02095539
139012340000


   

for i in tele --> 这种遍历是不对的。

而且tele 每天 记录数还不一样,有时5条,有 3条,用这种方式 for a,b,c,d in tele  把变量写死行不通吧。

论坛徽章:
0
发表于 2014-09-12 18:05 |显示全部楼层
你可能没理解,a,b,c,d是字段的值,你select出来的, 而tele 一定是元组,  你用cursor.execute('select')  fetchall 一下 结果肯定是元组 这是没错的.

论坛徽章:
60
20周年集字徽章-20	
日期:2020-10-28 14:04:3015-16赛季CBA联赛之北京
日期:2016-07-06 15:42:0715-16赛季CBA联赛之同曦
日期:2016-06-12 10:38:0915-16赛季CBA联赛之佛山
日期:2016-05-27 11:54:56黄金圣斗士
日期:2015-12-02 11:44:35白银圣斗士
日期:2015-11-25 14:32:43白银圣斗士
日期:2015-11-23 12:53:352015亚冠之布里斯班狮吼
日期:2015-10-21 16:55:482015亚冠之首尔
日期:2015-09-01 16:46:052015亚冠之德黑兰石油
日期:2015-08-31 11:39:192015亚冠之萨济拖拉机
日期:2015-08-28 21:06:5315-16赛季CBA联赛之广东
日期:2016-07-12 14:58:53
发表于 2014-09-12 18:25 |显示全部楼层
你的 tele 变量的值是 str 类型么? 还是元组类型or其他类型?
  1. >>> tele = '''00876123456
  2. ... 02095539
  3. ... 139012340000
  4. ... 无
  5. ... 无'''
  6. >>>
  7. >>>
  8. >>> print tele
  9. 00876123456
  10. 02095539
  11. 139012340000


  12. >>>
  13. >>>
  14. >>> print "insert into test(phone) values('%s')" % (tele)
  15. insert into test(phone) values('00876123456
  16. 02095539
  17. 139012340000

  18. 无')
  19. >>>
  20. >>>
复制代码

论坛徽章:
60
20周年集字徽章-20	
日期:2020-10-28 14:04:3015-16赛季CBA联赛之北京
日期:2016-07-06 15:42:0715-16赛季CBA联赛之同曦
日期:2016-06-12 10:38:0915-16赛季CBA联赛之佛山
日期:2016-05-27 11:54:56黄金圣斗士
日期:2015-12-02 11:44:35白银圣斗士
日期:2015-11-25 14:32:43白银圣斗士
日期:2015-11-23 12:53:352015亚冠之布里斯班狮吼
日期:2015-10-21 16:55:482015亚冠之首尔
日期:2015-09-01 16:46:052015亚冠之德黑兰石油
日期:2015-08-31 11:39:192015亚冠之萨济拖拉机
日期:2015-08-28 21:06:5315-16赛季CBA联赛之广东
日期:2016-07-12 14:58:53
发表于 2014-09-12 18:28 |显示全部楼层
  1. >>> tele = u'''00876123456
  2. ... 02095539
  3. ... 139012340000
  4. ... 无
  5. ... 无'''
  6. >>> print type(tele)
  7. <type 'unicode'>
  8. >>>
  9. >>>
  10. >>> print "insert into test(phone) values('%s')" % (tele)
  11. insert into test(phone) values('00876123456
  12. 02095539
  13. 139012340000

  14. 无')
  15. >>>
复制代码

论坛徽章:
0
发表于 2014-09-12 18:49 |显示全部楼层
回复 6# reyleon

是这种类型的 str
<type 'unicode'>

论坛徽章:
0
发表于 2014-09-12 19:19 |显示全部楼层
回复 4# huangxiaohen

这个值不是固定的,每天可能不一样,所以这种写法不太合理。
   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP