第一种情况: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