Рейтинг:
0
Garth J Lancaster
1) это действительно полезно, если вы задаете вопрос, связанный с БД или одной таблицей в БД, что вы предоставляете схему - иначе на самом деле это немного догадка (вы могли бы & должны использовать "улучшить вопрос", чтобы обновить свой вопрос)
2) то, что я вижу сразу, - это это утверждение
cursor.execute("""INSERT INTO TempDB VALUES('',%s, %s)""", (temperature,humidity))
имеет три значения, но я подозреваю, что ваша таблица имеет столбец autoincrement ID в качестве первого столбца, а затем поля для температуры и влажности - так что вам не нужно пустое поле в начале значений (но см. пункт 1, Почему это может быть предположением)
3) хотя кажется, что писать SQL таким образом "легко", это не в долгосрочной перспективе - это риск для безопасности для начала ... вам действительно нужно написать параматериализованное заявление ...
with con:
cursor = con.cursor(prepared=True)
sql_insert_query = """ INSERT INTO TempDB (temperature, humidity) VALUES (?,?)"""
insert_tuple = (temperature, humidity)
cursor.execute(sql_insert_query, insert_tuple)
con.commit()
Как уже было сказано, Я должен был принять ваши имена столбцов - смотрите, как я указываю имена столбцов в запросе insert, это означает, что любой, кто читает ваш код позже, знает, а не догадывается, куда все идет - иногда быть явным лучше - достаточно легко изменить имена. Эти ссылки ниже также могут помочь в будущем
Лучшая практика для SQL - операторов в Python- b.telligent[
^] (См. раздел "наилучшая практика: параметризованные запросы").)
https://pynative.com/python-mysql-execute-parameterized-query-using-prepared-statement/[
^]
Rithikvg
Спасибо за ваш ответ. Я хочу обновить значения в одной таблице внутри БД.
Я попробовал с помощью руководства youtube. Я видел Auto_Increment в столбце имя столбца " Extra ". Но я не смог узнать имя столбца "Extra" при создании таблицы. Так что я не заполнил Auto_increment. Пожалуйста помогите мне создать Auto_increment в столбце Name Extra
Garth J Lancaster
пожалуйста, измените свой ответ, чтобы включить инструкцию create, используемую для создания таблицы (которая должна содержать подробные сведения) - я не знаю, как вы ожидаете, что мы выясним, на какое "руководство youtube" вы ссылаетесь, фактически не предоставляя его, и большинство " нас " все равно не будут смотреть какую-то случайную ссылку youtube
Rithikvg
Привет,
Спасибо за ваш ответ. Я пытался использовать твой код. Но я получаю следующую ошибку msgTraceback (самый недавний призыв последнего):
Файл "./insertDB.py", строка 20, in <module>
курсор = связи.курсор(подготовлен=истина)
NameError: имя 'connection' не определено
Garth J Lancaster
Мой интервал был плохим, и вам нужно заменить "соединение" на " кон " ... так что я думаю, что ваш должен выглядеть так
with con:
cursor = con.cursor(prepared=True)
sql_insert_query = """ INSERT INTO TempDB (temperature, humidity) VALUES (?,?)"""
insert_tuple = (temperature, humidity)
cursor.execute(sql_insert_query, insert_tuple)
con.commit()
Вы должны быть готовы немного поэкспериментировать и протестировать
Rithikvg
дорогой друг,
Извините, что беспокою вас, но все же я получил следующую ошибку msg
Обратная трассировка (самый недавний призыв последнего):
Файл "./insertDB.py", строка 19, in <module>
курсор = кон.курсор(подготовлен=истина)
Ошибку TypeError: курсор() приготовил неожиданный аргумент сайта''
Garth J Lancaster
похоже, что ваш слой БД отличается ? древний .. попробуйте замаскировать его, и учитывая это, вам, возможно, придется изменить оператор insert на
with con:
//cursor = con.cursor(prepared=True)
sql_insert_query = """ INSERT INTO TempDB (temperature, humidity) VALUES (%s,%s)"""
insert_tuple = (temperature, humidity)
cursor.execute(sql_insert_query, insert_tuple)
con.commit()
Rithikvg
дорогой друг,
Спасибо за вашу любезную поддержку. Но все же я получаю следующую ошибку msg
//cursor = con.cursor(prepared=True)
^
SyntaxError: недопустимый синтаксис
Garth J Lancaster
просто удалите эту строку