Python 3.x Python 3.7.5.10.4.11查询绑定导致异常
在这个人为设计的示例中,我尝试选择“Fred”硬编码,然后使用绑定变量 硬选择很好。绑定变量示例失败,出现异常Python 3.x Python 3.7.5.10.4.11查询绑定导致异常,python-3.x,mariadb,Python 3.x,Mariadb,在这个人为设计的示例中,我尝试选择“Fred”硬编码,然后使用绑定变量 硬选择很好。绑定变量示例失败,出现异常 import sys import string import mysql.connector def sanity_test(): try: print("connecting") connection = mysql.connector.connect(user='root', password='root',
import sys
import string
import mysql.connector
def sanity_test():
try:
print("connecting")
connection = mysql.connector.connect(user='root', password='root',
host='127.0.0.1', database="MyJournal")
print("test1")
cursor1 = connection.cursor()
cursor1.execute("select 'Fred'")
records = cursor1.fetchall()
print("There are " + str(cursor1.rowcount) + " rows in the first result set")
print("test2")
cursor2 = connection.cursor()
name = "Fred";
cursor2.execute("select %s", name)
records2 = cursor2.fetchall()
print("There are " + str(cursor2.rowcount) + " rows in the second result set")
except:
e = sys.exc_info()[0]
print ("Exception: ", e)
else:
cursor1.close()
cursor2.close()
connection.close()
input("Press Enter to continue...")
if __name__ == '__main__':
sanity_test()
结果输出为
connecting
test1
There are 1 rows in the first result set
test2
Exception: <class 'mysql.connector.errors.ProgrammingError'>
我错过了什么?
除了简洁异常外,还有哪些技术可以获得更多信息?1处理每个逻辑块的异常,例如连接,然后游标。创建+执行,但不能跨越多个块 2获取更多描述性错误消息
except mysql.connector.Error as err:
print("Unexpected error : ", format(err))
3 SQL标准要求语句中的字符串使用单引号或双引号,例如cursor.executeSELECT'%s',foo,对异常块达成一致。这个例子是人为的。格式错误确实有帮助。谢谢。不需要额外的报价。显然,连接器解决了这个问题。将参数设置为1值元组似乎解决了这个问题。谢谢