Python 2を使用しています。 私は学習の練習としてmysql.connectorを使って遊んでいて、いくつかの作業用インサートを作っていて、奇妙な(私にとっては)問題に遭遇しました - 私は間違ったことをしていると確信しています。私はいくつかのテーブルの2つのカラムに挿入していました。最初の例のようなものです。 1つの列に挿入した場合に構文エラーが発生しました。python mysqlが1つの変数だけを入力すると構文エラーが発生する
このような構文だけで正常に動作する理由の任意のアイデア:
query_publisher = "INSERT INTO publisher (name) "\
"VALUES (%s) " \
"ON DUPLICATE KEY UPDATE PUBLISHER_ID=LAST_INSERT_ID(PUBLISHER_ID)"
args_publisher = (publisher_name)
[EDIT]:
query_publisher = "INSERT INTO publisher (name, name2) "\
"VALUES (%s, %s) " \
"ON DUPLICATE KEY UPDATE PUBLISHER_ID=LAST_INSERT_ID(PUBLISHER_ID)"
args_publisher = (publisher_name, publisher_name2)
私が本当にやりたいことであるしかし、この構文は、構文エラーがスローされます。
cursor.execute(query_publisher, args_publisher)
エラー:どちらの場合も、私はこれを実行しています
MySQLの1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '%s ON DUPLICATE KEY UPDATE PUBLISHER_ID=LAST_INSERT_ID(PUBLISHER_ID)' at line 1
はどのようにこのクエリを実行していますか? – tadman
cursor.execute(query_publisher、args_publisher) - 私はどちらの場合でもこれを使用しています。 –
私はPythonに精通していませんが、Perlのようなものであれば、 'args_publisher'はリスト型の代わりにスカラーであるかもしれません。中間変数でこれをやっている理由はありますか? '(publisher_name、)'がリストを強制的に修正して問題を解決するだろうか? – tadman