hostname = raw_input("Enter hostname : ")
connection = MySQLdb.connect (host = "localhost", user = "hawkhost_databas", passwd = "}MFkdDI6]#QX", db = "hawkhost_database")
cursor = connection.cursor()
cursor.execute ("select User, Hostname, Password, Port from dbinfo where hostname=%s", (hostname))
1
A
ответ
-1
Линии
cursor.execute ("select User, Hostname, Password, Port from dbinfo where hostname=%s", (hostname))
является неправильным, так как он проходит два параметра cursor.execute
и строка правильно не подставляется.
Попробуйте с
cursor.execute ("select User, Hostname, Password, Port from dbinfo where hostname=%s" % (hostname))
или
cursor.execute ("select User, Hostname, Password, Port from dbinfo where hostname={}".format(hostname))
Чтобы объяснить вещи немного лучше, давайте печатать:
hostname='example.com'
print("select User, Hostname, Password, Port from dbinfo where hostname=%s", (hostname))
производит
select User, Hostname, Password, Port from dbinfo where hostname=%s example.com
тогда
print("select User, Hostname, Password, Port from dbinfo where hostname=%s" % (hostname))
# print("select User, Hostname, Password, Port from dbinfo where hostname={}".format(hostname))
производит
select User, Hostname, Password, Port from dbinfo where hostname=example.com
заметь, в запросе, было бы хорошей идеей, чтобы поместить hostname
в кавычки, например 'example.com'
-1
cursor.execute ("выберите пользователя, имя хоста, пароль, порт от dbinfo где Hostname = '% s'" % d)
Это исправили проблему
Файл "./db_copy.py" , строка 21, в cursor.execute ("выберите пользователя, имя хоста, пароль, порт из dbinfo, где пользователь =% s"% (uid)) Файл "/usr/lib/python2.6/site-packages/MySQLdb /cursors.py ", строка 205, в исполнении self.errorhandler (self, exc, value) Файл« /usr/lib/python2.6/site-packages/MySQLdb/connections.py », строка 36, в defaulterrorhandler raise errorclass, errorvalue _mysql_exceptions.ProgrammingError: (1064, «У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с «.115.134» в строке 1 ») –
Файл« ./db_copy.py », строка 27, в data = cursor.fetchall() Файл «/usr/lib/python2.6/site-packages/MySQLdb/cursors.py», строка 382, в fetchall self._check_executed() Файл «/usr/lib/python2.6/site-packages/MySQLdb /cursors.py ", строка 105, в _check_executed self.errorhandler (self, ProgrammingError," execute() first ") Файл« /usr/lib/python2.6/site-packages/MySQLdb/connections.py », строка 36, в defaulterrorhandler raise errorclass, errorvalue _mysql_exceptions.ProgrammingError: выполнить() сначала –
, так что у вас есть ошибка в SQL-синтаксисе Икс. Какую строку вы используете в конце? 'select User, Hostname, Password, Port from dbinfo, где hostname = 'example.com';' должен работать. Я игнорирую, если в MySQL используется регистр в верхнем и нижнем регистре (т. Е. Это «имя хоста» или «имя хоста»?) – Pynchia