lzt15965622325 发表于 2020-9-10 14:32:39

pymssql问题

import pymssql
connect=pymssql.connect('...','sa','1234','pylj')
if connect:
    print("OK")
x0="ss13186"
x1="ss111444"
cursor=connect.cursor()
sql="insert into lx1 (id,password,zt)values(%s,%s,'yes')"%(x0,x1)
cursor.execute(sql)
connect.commit()
cursor.close()
connect.close()
该段代码,在x0 x1为纯数字时,能导入保存到数据库中,非纯数字时报错 20018,问问大哥们咋解决

kogawananari 发表于 2020-9-10 14:47:30

改成"insert into lx1 (id,password,zt)valuers(%r,%r,'yes')"%(x0,x1)试试看吧

lzt15965622325 发表于 2020-9-10 15:50:17

kogawananari 发表于 2020-9-10 14:47
改成"insert into lx1 (id,password,zt)valuers(%r,%r,'yes')"%(x0,x1)试试看吧

好的谢谢,我试试

lzt15965622325 发表于 2020-9-10 16:21:32

kogawananari 发表于 2020-9-10 14:47
改成"insert into lx1 (id,password,zt)valuers(%r,%r,'yes')"%(x0,x1)试试看吧

老哥,再问一哈,代码改了之后,数据库查不到东西了
数据库用select查询时显示错误:“转换 varchar 值 '12345678887' 时溢出了整数列。”

kogawananari 发表于 2020-9-10 16:30:35

没遇到过大概是表设计有问题吧varchar类型是拉丁文字符串 你试图往里面存过长的int类型吗

你先把语句用Navicat Premium 这个软件 或者其他的 执行能成功 再写到python代码里吧

lzt15965622325 发表于 2020-9-10 16:50:10

kogawananari 发表于 2020-9-10 16:30
没遇到过大概是表设计有问题吧varchar类型是拉丁文字符串 你试图往里面存过长的int类型吗

你先把语 ...

实在不好意思,再问一下,我重新建了表,用%r输入后,在数据库原字符后会增加\n,导致无法查询调用

kogawananari 发表于 2020-9-10 17:09:55

lzt15965622325 发表于 2020-9-10 16:50
实在不好意思,再问一下,我重新建了表,用%r输入后,在数据库原字符后会增加\n,导致无法查询调用

你的这个问题我也没有遇到过 我平时一般是用f字符串来拼接
然后就是拼接好了还可以打印了看看import time
username = 'kogawananari'
password = 'dddddd'
id = 1
print(f'UPDATE userinfo SET {username=}, {password=}, updatetime={int(time.time())} WHERE {id=}')
页: [1]
查看完整版本: pymssql问题