Python / MySQL変数を使用して文字列を挿入する方法、「TRUE」を1に変更し続ける

リチャード

led_statusというテーブルと「test_led」というフィールドがあります。

mysql> describe led_status;
+------------------------------+------------+------+-----+---------+-------+
| Field                        | Type       | Null | Key | Default | Extra |
+------------------------------+------------+------+-----+---------+-------+
| test_led                     | varchar(5) | NO   |     | NULL    |       |
+------------------------------+------------+------+-----+---------+-------+

次のコードを使用して、「TRUE」または「FALSE」(int 1または0ではない)の文字列を入力しようとしています。

def write_database_value(table,field,value):
    connect = mysql.connector.connect(user=db_info.username,
                              password=db_info.password,
                              host=db_info.servername,
                              database=db_info.database)
    cursor = connect.cursor()
    cursor.execute(("UPDATE %s SET %s = %s") % (table, field, value))
    connect.commit()
    cursor.close()
    connect.close()

def read_database_value(table,field):
    connect = mysql.connector.connect(user=db_info.username,
                              password=db_info.password,
                              host=db_info.servername,
                              database=db_info.database)
    cursor = connect.cursor(buffered=True)
    cursor.execute(("SELECT %s FROM %s") % (field, table))

    for data in cursor:
        database_value = data
        cursor.close()
    connect.close()
    return database_value

これはこのスクリプトから呼び出されます:

def get_led_status(led):
    led_status = read_database_value("led_status", led)
    led_status = (led_status[0])
    return led_status

def is_pool_pump_running():
    pool_running = get_led_status("test_led")
    if pool_running == "TRUE":
        print("Pool Pump is Running, shutting it off now")
        write_database_value("led_status","test_led","FALSE")
    else:
        print("Pool Pump is NOT Running, turning it on now")
        write_database_value("led_status","test_led","TRUE")

ただし、スクリプトを実行するたびに、「TRUE」が1に、「FALSE」が0に変更されます。

フラットファイルからデータベースに切り替えていますが、すべてのコード(これまでのところ4000行)で「TRUE」と「FALSE」が使用されているため、1と0を使用するためだけに書き直す必要はありません。 「TRUE」や「FALSE」とは対照的です。

どんな考えでも大歓迎です。

リチャード

入力を提供してくれたすべての人に感謝します。たくさん掘り下げた後、私は自分の問題を理解しました。どうやら、プリペアドステートメントでテーブル名をパラメータ化することはできません。これはまさに私が上でやろうとしていたことです。@ConspicuousCompilerの答えを見つけたPOSTはそのステートメントで死んでいた。

問題は私のwrite_database_value()機能にありました。これは、必要に応じて機能する正しい関数です。

def write_database_value(table,column,value):
    try:
        connection = mysql.connector.connect(user=db_info.username,
                                      password=db_info.password,
                                      host=db_info.servername,
                                      database=db_info.database)
        cursor = connection.cursor(buffered=True)
        sql_update = "UPDATE " + table + " SET " + column + " = %s"
        cursor.execute(sql_update, (value,))
        connection.commit()
        cursor.close()
        connection.close()
    except Error as error :
        print("Failed to Update record in database: {}".format(error))
    finally:
        if(connection.is_connected()):
            connection.close

大きな変化:

から: cursor.execute(("UPDATE %s SET %s = %s") % (table, field, value))

これに:

sql_update = "UPDATE " + table + " SET " + column + " = %s"
cursor.execute(sql_update, (value,))

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Pythonで文字列に変数値を挿入する方法

分類Dev

変数を使用してPythonのデータをmysqlデータベースに挿入する方法は?

分類Dev

SPSSでPythonを使用して変数のセルを更新/挿入する方法

分類Dev

Pythonを使用して複数の文字列をリストに変換する方法

分類Dev

Pythonを使用してJSONに文字列を挿入する

分類Dev

Python文字列に変数を挿入します

分類Dev

Pythonで特定の文字列のみを受け入れ、if / elseを使用してwhileループを中断するように変数を設定します

分類Dev

win32comを使用してPythonメールにパンダ変数を挿入する方法

分類Dev

python:Unicode文字列を使用して変数から文字を出力する方法

分類Dev

Pythonを使用して文字列を辞書に変換する方法(不正な文字列)

分類Dev

Python / MySQL変数を使用した「挿入」

分類Dev

変数を使用してPythonからPostgreSQLにテーブルに挿入する方法

分類Dev

入力変数名を使用して、文字列からPython関数を解析する方法は?

分類Dev

変数を使用して長いPython文字列を作成する

分類Dev

mongoDBに挿入するときにpythonを使用してjsonデータを変数に保存する

分類Dev

Pythonを使用してUnicodeを含む文字列をUnicodeに変換する方法

分類Dev

Pythonはmysql.connectorを介してmysqlに変数を挿入します

分類Dev

Pythonを使用してmysqlに文字列を挿入しています:不明な列

分類Dev

Pythonを使用して連続文字列を見つける方法

分類Dev

Pythonで文字列を変数として定義する方法

分類Dev

Pythonで1つの変数を使用して2つの列を削除する方法

分類Dev

Pythonを使用してJSON文字列をdictに変換する

分類Dev

AM / PMを使用してPython文字列をdatetimeobjに変換する

分類Dev

Pythonを使用してリストを文字列に変換する

分類Dev

変数を持つ文字列パターンが与えられた場合、Pythonを使用して変数文字列を照合して見つける方法は?

分類Dev

Pythonを使用して別の列の時間に基づいて列に数値を挿入する方法

分類Dev

Python .get()を使用して文字列をfloatに変換する方法は?

分類Dev

pandas pythonを使用してUnicode文字列をリストに変換する方法は?

分類Dev

Pythonで変数の一部として文字列を使用する方法

Related 関連記事

  1. 1

    Pythonで文字列に変数値を挿入する方法

  2. 2

    変数を使用してPythonのデータをmysqlデータベースに挿入する方法は?

  3. 3

    SPSSでPythonを使用して変数のセルを更新/挿入する方法

  4. 4

    Pythonを使用して複数の文字列をリストに変換する方法

  5. 5

    Pythonを使用してJSONに文字列を挿入する

  6. 6

    Python文字列に変数を挿入します

  7. 7

    Pythonで特定の文字列のみを受け入れ、if / elseを使用してwhileループを中断するように変数を設定します

  8. 8

    win32comを使用してPythonメールにパンダ変数を挿入する方法

  9. 9

    python:Unicode文字列を使用して変数から文字を出力する方法

  10. 10

    Pythonを使用して文字列を辞書に変換する方法(不正な文字列)

  11. 11

    Python / MySQL変数を使用した「挿入」

  12. 12

    変数を使用してPythonからPostgreSQLにテーブルに挿入する方法

  13. 13

    入力変数名を使用して、文字列からPython関数を解析する方法は?

  14. 14

    変数を使用して長いPython文字列を作成する

  15. 15

    mongoDBに挿入するときにpythonを使用してjsonデータを変数に保存する

  16. 16

    Pythonを使用してUnicodeを含む文字列をUnicodeに変換する方法

  17. 17

    Pythonはmysql.connectorを介してmysqlに変数を挿入します

  18. 18

    Pythonを使用してmysqlに文字列を挿入しています:不明な列

  19. 19

    Pythonを使用して連続文字列を見つける方法

  20. 20

    Pythonで文字列を変数として定義する方法

  21. 21

    Pythonで1つの変数を使用して2つの列を削除する方法

  22. 22

    Pythonを使用してJSON文字列をdictに変換する

  23. 23

    AM / PMを使用してPython文字列をdatetimeobjに変換する

  24. 24

    Pythonを使用してリストを文字列に変換する

  25. 25

    変数を持つ文字列パターンが与えられた場合、Pythonを使用して変数文字列を照合して見つける方法は?

  26. 26

    Pythonを使用して別の列の時間に基づいて列に数値を挿入する方法

  27. 27

    Python .get()を使用して文字列をfloatに変換する方法は?

  28. 28

    pandas pythonを使用してUnicode文字列をリストに変換する方法は?

  29. 29

    Pythonで変数の一部として文字列を使用する方法

ホットタグ

アーカイブ