python操作数据库出现错误 : Unknown column 'XXXX' in 'where clause'"

第一种情况:Unknown column 'XXXX' in 'where clause
python操作数据库出现错误 : Unknown column 'XXXX' in 'where clause'")错误 - CSDN博客  https://blog.csdn.net/you_are_my_dream/article/details/53180474

在MySQL数据库中存在中文字符,python操作数据库的语句如下

sql = "select * from tb2 where acctid = %s " % acctid
sql = "select * from tb2 where acctid = %s " % acctid
#提示错误(1054, u"Unknown column '\u5434\u4fee\u6811' in 'where clause'")
#一般认为是没有加引号的原因,如:%s是hello,world
sql = select * from tb2 where acctid = hello,world

hello,world是字符还是一个变量可能产生歧义,加上引号问题一般得到解决

sql = "select * from tb2 where acctid = '%s'" % acctid

但是:第二种情况(加引号也没有解决):
如果inputText是个字符串型的身份证号码,如果全是数字,则可正常搜索,但是如果尾数是字母,则提示如下错误:
Exception "unhandled pandas.io.sql.DatabaseError"
Execution failed on sql 'select serial_num,姓名,性别,出生日期,公司,职务名称,职级名称,公司编码,大区,学历,专业,学校,户籍地址,进入集团日期,手机,证件号码,家庭地址,人员编码,公司编码 from ce where 证件号码=15022319721101112X': (1054, "Unknown column '15022319721101112X' in 'where clause'")
sql=r"select %s from %s where 证件号码=%s"%(f_name_t1, t_cebase,inputText )#问题语句!
#此语句的inputText接受传来的字符串值,是全数字或全汉字都正常,但如果其值是数字混合了字母,就提示Unknown column错误。
虽然inputText是个字符串型变量,遇到以上情况,此时仍需要在%s两侧加上单引号,而在整个字符串加上三引号!
sql=r'''select %s from %s where 证件号码='%s' '''%(f_name_t1, t_cebase, inputText )#此语句正确,Unknown column问题消失!

关于数据库runback错误。

Exception "unhandled pandas.io.sql.DatabaseError"Execution failed on sql: 'select serial_num,大区,公司,证件号码,姓名,人员编码,手机,职务名称,职级名称 from 'ce' (0, '')

unable to rollback

File: d:\ProgramData\Anaconda3\lib\site-packages\pymysql\connections.py, Line: 1075

    def _execute_command(self, command, sql):
        if not self._sock:
            raise err.InterfaceError("(0, '')")

python 操作MySQL数据库 | 菜鸟教程  http://www.runoob.com/python/python-mysql.html

InterfaceError 当有数据库接口模块本身的错误(而不是数据库的错误)发生时触发。 必须是Error的子类。

python - InterfaceError (0, '') - Stack Overflow  https://stackoverflow.com/questions/6650940/interfaceerror-0


  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值