0

bob変数を挿入したいのですがdummyVar、テーブルにlogger. 今、私がしなければならないことは、以下にあることだけですが、これは私のテーブルに何も挿入しません。何を書くべきかをハードコードすると(使用'example'すると、テーブルに例が書き込まれるため、挿入するための接続と構文はこの時点で正しいです)。どんな助けでも大歓迎です!

conn = mysql.connector.connect(user='username', password='password!',
                              host='Host', database='database')

cursor = conn.cursor()

bob = "THIS IS AN EXAMPLE"
dummyVar = "Variable Test"

loggit = ("""
        INSERT INTO logger (logged_info, dummy)
        VALUES
            (%s, %s)
    """, (bob, dummyVar))

cursor.execute(loggit)
conn.commit()

私もこれを試しました:

loggit = ("""
        INSERT INTO logger (logged_info, dummy)
        VALUES
            (%(bob)s,(Hello))
    """, (bob))

と:

bob = "THIS IS AN EXAMPLE"
dummyVar = "Variable Test"

loggit = ("""
        INSERT INTO logger (logged_info, dummy)
        VALUES
            (%s, %s)
    """, (bob, dummyVar))

cursor.execute(loggit, (bob, dummyVar))
conn.commit()


cursor.execute(loggit, (bob, dummyVar))

conn.commit()
4

1 に答える 1

4

SQL ステートメントとパラメーターを個別の引数として渡す必要があります。

cursor.execute(loggit[0], loggit[1])

または可変引数構文 (a splat, *)を使用します。

cursor.execute(*loggit)

お使いのバージョンは、SQL ステートメントとバインド パラメーターを含むタプルを唯一の引数として渡そうとします。この場合、.execute()関数は SQL ステートメント文字列だけを見つけることを期待しています。

2 つを別々にして、おそらく SQL ステートメントだけを変数に格納するのがより一般的です。

loggit = """
        INSERT INTO logger (logged_info, dummy)
        VALUES
            (%s, %s)
    """
cursor.execute(loggit, (bob, dummyVar))
于 2013-05-12T11:16:49.987 に答える