powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Python + MySQL
5 сообщений из 5, страница 1 из 1
Python + MySQL
    #39133281
mini.weblab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не получается использовать название таблице в качестве параметра в запросе

команда:
Код: python
1.
cursor.execute(query, {'data_file':'data.csv', 'db_table':'Bookings'})



Шаблон запроса
Код: sql
1.
2.
3.
4.
LOAD DATA LOCAL INFILE %(data_file)s
 INTO TABLE %(db_table)s
 FIELDS TERMINATED BY '^' OPTIONALLY ENCLOSED BY '\"'
 LINES TERMINATED BY '\n'



Запрос передающийся в БД:
Код: sql
1.
2.
3.
4.
LOAD DATA LOCAL INFILE 'data.csv'
 INTO TABLE 'Bookings'
 FIELDS TERMINATED BY '^' OPTIONALLY ENCLOSED BY '\"'
 LINES TERMINATED BY '\n'



Проблема: кавычки вокруг 'Bookings' должны быть обратными `Bookings` (или вообще без кавычек)

что можно сделать?
...
Рейтинг: 0 / 0
Python + MySQL
    #39133404
mini.weblab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mini.weblab,
сделала вот что (некрасиво, но работает)

использовала format

Шаблон запроса:
Код: sql
1.
2.
3.
4.
LOAD DATA LOCAL INFILE {data_file}
INTO TABLE {table_name}
FIELDS TERMINATED BY '^' OPTIONALLY ENCLOSED BY '\"'
LINES TERMINATED BY '\n'



код:
Код: python
1.
2.
query = query.format(data_file="'" + self.data_file + "'", table_name=self.db_table)
cursor.execute(query)
...
Рейтинг: 0 / 0
Python + MySQL
    #39136681
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mini.weblabНе получается использовать название таблице в качестве параметра в запросе

команда:
Код: python
1.
cursor.execute(query, {'data_file':'data.csv', 'db_table':'Bookings'})



Шаблон запроса
Код: sql
1.
2.
3.
4.
LOAD DATA LOCAL INFILE %(data_file)s
 INTO TABLE %(db_table)s
 FIELDS TERMINATED BY '^' OPTIONALLY ENCLOSED BY '\"'
 LINES TERMINATED BY '\n'



Запрос передающийся в БД:
Код: sql
1.
2.
3.
4.
LOAD DATA LOCAL INFILE 'data.csv'
 INTO TABLE 'Bookings'
 FIELDS TERMINATED BY '^' OPTIONALLY ENCLOSED BY '\"'
 LINES TERMINATED BY '\n'



Проблема: кавычки вокруг 'Bookings' должны быть обратными `Bookings` (или вообще без кавычек)

что можно сделать?


так не получится, надо самому текст запроса формировать в части названия таблицы.
...
Рейтинг: 0 / 0
Python + MySQL
    #39136682
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дело в том, что тут ты пытаешься использовать параметры запроса, а это в любом случае будет
приводить к экранизации данных,
а тут тебе нужно сам запрос динамически генерировать.
...
Рейтинг: 0 / 0
Python + MySQL
    #39136683
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
т. е. тут надо

Код: python
1.
cursor.execute(query.format({'data_file':'data.csv', 'db_table':'Bookings'}))



ты как бы все верно сделал, но для случая, когда это был бы SQL и данные, а тут у тебя это не совсем SQL, а команда MySQL, и не данные, а мета данные.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Python + MySQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]