belodemon
Фев. 21, 2012 22:18:32
Доброго времени!
Версия интерпритатора: Python 2.6.6 (r266:84292, Dec 27 2010, 00:02:40) Платформа Linux.
Я новичок поэтому вопрос думаю будет не сложным для присутствующих )
Пробую делать простой селект с базы (mysqldb 5.1) , самый простой, вида:
cursor.execute(“SELECT %s FROM %s”, (r_users, r_table))
results = cursor.fetchall()
получаю ошибку
“You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘'resellers’' at line 1”)
второе что не очень то получается без дополнительных костылей, если я делаю явный селект в лоб вида:
cursor.execute(“SELECT name_user FROM users”)
results = cursor.fetchall()
получаю лист (масив) вида ((user1,), (user2,), (user3,))
что для меня есть не очень гуд, т.к. необходимо этот список сравнить с другим списком, можно как то и это обойти? Тоесть получать эту выборку в список в стандартном виде .
Буду очень спасибо!
lavrton
Фев. 22, 2012 03:35:52
check the manual that corresponds to your MySQL server version for the right syntax to use near ‘'resellers’' at line 1"
Те ли значения хранятся в r_users, r_table? Попробуйте сделать, чтобы явно увидеть sql запрос:
print "SELECT %s FROM %s"%(r_users, r_table)
Для получения “хорошего” массива воспользуйтесь следующей конструкцией:
results=[user for (user,) in cursor.fetchall()]
PooH
Фев. 22, 2012 06:35:34
belodemon
Пробую делать простой селект с базы (mysqldb 5.1) , самый простой, вида:
cursor.execute(“SELECT %s FROM %s”, (r_users, r_table))
results = cursor.fetchall()
получаю ошибку
“You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘'resellers’' at line 1”)
Потому что биндинг execute выполняет только для параметров запроса, например
cursor.execute(“SELECT id, name_user FROM users WHERE name_user = %s”, (name, ))
в вашем случае надо воспользоваться обычным форматированием строки
cursor.execute(“SELECT %s FROM %s” % (r_users, r_table))
quantum
Фев. 22, 2012 07:42:10
Уважаемые! Огромное человеческое! Поправил:
cursor.execute(“SELECT %s FROM %s” % (r_users, r_table))
results =
Получаю полную красоту!