В этом надуманном примере я пытаюсь выбрать 'Fred' жестко, затем с помощью переменной bind.
Hard select работает отлично. Пример переменной привязки завершается с ошибкой.
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'>
Чего мне не хватает? Какие методы доступны, чтобы получить больше информации, чем краткое исключение?