2015-10-20 3 views
1
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

Линии

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'

+0

Файл "./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 ») –

+0

Файл« ./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: выполнить() сначала –

+0

, так что у вас есть ошибка в SQL-синтаксисе Икс. Какую строку вы используете в конце? 'select User, Hostname, Password, Port from dbinfo, где hostname = 'example.com';' должен работать. Я игнорирую, если в MySQL используется регистр в верхнем и нижнем регистре (т. Е. Это «имя хоста» или «имя хоста»?) – Pynchia

-1

cursor.execute ("выберите пользователя, имя хоста, пароль, порт от dbinfo где Hostname = '% s'" % d)

Это исправили проблему