2016-09-16 4 views
1

私のstackoverflowに関する研究の後で、私のコードはここにありません。(正確なコードは投稿できません。私はすでに手動で挿入しようとしましたが、それは働いたが、何とか私のPythonコードが挿入を行うことはありませんPythonコマンドでmysql.connectorを挿入しませんでしたが、手動でクエリが機能します

import mysql.connector 
.  
. 
. 
cnx = mysql.connector.connect(user, password, host, database) 
cursor = cnx.cursor() 

for-loop: 
    if condition: 
      cursor.execute("INSERT INTO table (the_columns) VALUES (%s)", (my_values)) 
      cnx.commit() 

:仕事で持っている)との問題。

手差し:

INSERT INTO table (column1,...,column7) VALUES (string1,....,string6, now())  

私はエラーメッセージを持っていない、私は唯一のデータベースに見て、新しいvaliuesがないことがわかります。 誰かがこの問題に直面しましたか?誰もが何が問題になる可能性が示唆できますか?

+0

問題が解決された以前のDEVが同じ名前の2つのインスタンスを持っていたし、それがすべてではmSQLの誤りではなかったため、問題がありました。 – dima

答えて

1

"(" ")"の間に変数を配置する必要がない可能性がありますか? 値をSQLの内部に入れようとしましたか、それを含む変数の代わりに値を入れようとしましたか? 「手動」とはどういう意味ですか?

とにかく、あなたは、2番目の引数として、この配列を渡す前に、配列内のすべての変数を置く必要があります。

query = (
    "INSERT INTO employees (emp_no, first_name, last_name, hire_date) VALUES (%s, %s, %s, %s)" 
) 
data = (2, 'Jane', 'Doe', datetime.date(2012, 3, 23)) 
cursor.execute(insert_stmt, data) 

EDIT:あなたはあなたの問題をグーグル場合、私はちょうどチェックし、メインexempleのthats ...あなたはこれを少し探しましたか?それはあなたの助けを求める前に自分で検索してください。

+0

はい、手作業で試してみました。 paranthesesは問題ではなく、まったく同じ配列で前に働いていました。そしてそれらを削除しようとしましたが、これは構文エラーを投げかけました。 – dima

+0

OK、exemple(編集済みの申し訳ありません>。)のようなデータ配列に変数を入れてみてください – xoxel

+0

私はすでにそれを試して、私は1時間googledし、それも動作しませんでした。なぜ私はstackoverflowの質問ですか? – dima

0

フォーマット変数をタプルに変換してみてください。これがうまくいかない場合。変数を別々に作成し、それを印刷してSQLコンソールで直接実行してみてください。より意味のあるエラーが発生する可能性があります。

cnx = mysql.connector.connect(user, password, host, database) 
cursor = cnx.cursor() 

for-loop: 
    if condition: 
     cursor.execute("INSERT INTO table (the_columns) VALUES (%s)", (my_values,)) 
     cnx.commit() 

OR

cnx = mysql.connector.connect(user, password, host, database) 
cursor = cnx.cursor() 

for-loop: 
    if condition: 
     sql = "INSERT INTO table ({}) VALUES ({})".format(the_columns,my_values) 
     print(sql) 
     cursor.execute(sql) 
     cnx.commit() 
関連する問題