Найти - Пользователи
Полная версия: взаимодействие с базой mysql
Начало » Python для новичков » взаимодействие с базой mysql
1
belodemon
Доброго времени!
Версия интерпритатора: 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
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
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
Уважаемые! Огромное человеческое! Поправил:

cursor.execute(“SELECT %s FROM %s” % (r_users, r_table))
results =

Получаю полную красоту!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB