2009-09-04 3 views
0

Может ли кто-нибудь показать мне синтаксис для вставки кортежа/списка python в базу данных mysql? я также необходимо знать, если это возможно для пользователя, чтобы передать определенные строки, не вставляя что-нибудь ... , например: функция возвращает этот кортеж:Вставка кортежа в mysql db

return job(jcardnum, jreg, jcarddate, jcardtime, jcardserve, jdeliver) 

Предположим, что пользователь ничего вводить техника его подводит в jreg бы сам python вводит значение null в соответствующую строку в БД или я буду бежать в неприятности?

+1

Работа не является кортежем, это функция. У этого вопроса слишком мало информации, чтобы дать ответ. – Omnifarious

ответ

6

В комментарии говорится, что часть job(...) является вызовом функции (или класса) - все, что возвращается от этого вызова, также возвращается из этого оператора return.

Предположим, что это кортеж. Что делать, если «пользователь ничего не вводил в jreg» - ну тогда, в зависимости от большого количества кода, который вы нам не показываете, это может быть ошибка времени выполнения (имя jreg не определено), пустую строку или другую начальную значение по умолчанию никогда не изменялось, или None; в последнем случае это действительно со временем станет NULL в БД (если это приемлемо для схемы БД, конечно - иначе, БД отверг бы попытку вставки).

После того, как вы, наконец, иметь правильное и надлежащее кортеж T, который вы хотите вставить,

`mycursor.execute('INSERT INTO sometable VALUES(?, ?, ?, ?, ?, ?)', T) 

будет близок к синтаксису вы хотите - если T имеет шесть элементов (и sometable имеет шесть столбцы, конечно). Каждый ? является заполнителем и заменяется соответствующим элементом. mycursor должен быть экземпляр Cursor, предположительно полученный некоторым более ранним вызовом myconnection.cursor, где myconnection - это экземпляр Connection, построенный по правильному вызову connect из модуля DB API, который вы используете с правильными аргументами.

Если вы покажете нам примерно в 100 раз больше схем кода и БД и точно скажите нам, ЧТО вы пытаетесь выполнить, мы, в совокупности, без сомнения могли бы быть БОЛЬШЕ более полезными и конкретными - но на основе суб- epsilon количество информации, которую вы поставляете, примерно столько же, сколько мы, коллективно говоря, можем предложить ;-).

+1

+1 для потрясающе полного ответа на частично заданный и в основном угаданный вопрос. –

+0

да! отличный ответ! :) –

0

Возможно, cursor.executemany - это то, что вам нужно?

предположим, что пользователь ничего вводить техника его подводит в jreg бы Python сам ввести нулевую в к соответствующей строке в БД или бы я работать в утруждать?

Я думаю, вы должны просто попробовать, вы, вероятно, увидите предупреждение или ошибку, если NULL не разрешен.

Смежные вопросы