python sql оператор вставки вставляет значения с кавычками в базу данных - PullRequest
0 голосов
/ 10 января 2020

Я пытаюсь вставить данные в Mysql в python, используя следующие операторы

cursor.execute('INSERT INTO batch_details (batch_id,plant_id,product_code) VALUES ("%s","%s","%s")', (id, plantcode, pcode))

Здесь id = "75", plantcode = "2", pcode = "FG"

Но мои значения в базе данных вставляются с одинарной кавычкой в ​​mysql базе данных, то есть '75', '2', 'FG'

Я не понимаю, почему значения вставляются в одинарные кавычки. Синтаксис запроса sql представляется правильным.

Ответы [ 2 ]

0 голосов
/ 13 января 2020

Вы уверены, что сначала превращаете его в подготовленное утверждение? См. Пример документации здесь -

cursor = cnx.cursor(prepared=True)
stmt = "SELECT fullname FROM employees WHERE id = %s" # (1)
cursor.execute(stmt, (5,))

В противном случае, если вы хотите просто выполнить прямую обработку строк, вы должны выполнить

query = 'INSERT INTO batch_details (batch_id,plant_id,product_code) VALUES ("%s","%s","%s")'%(id, plantcode, pcode)
cursor.execute(query)
0 голосов
/ 10 января 2020

% s означает, что значение, которое вы предоставляете, должно интерпретироваться как строка. Если вы хотите быть целыми числами, попробуйте использовать% d. Вам также может понадобиться избавиться от символов кавычек вокруг частей% d в вашем списке ЗНАЧЕНИЙ, если вы хотите, чтобы SQL интерпретировал значение как число, а не строку.

Кроме того, когда разные программы или библиотеки печатают строку, некоторые печатают ее с символами одинарных кавычек, некоторые печатают символы с двойными кавычками. В любом случае, это все еще строка в вашей базе данных, она просто выводится на экран стилистически другим способом.

...