2016-11-17 14 views
0

私は前のクエリに基づいて、アレイに割り当てられている変数と呼ばれるbizIdsありますWHERE声明 - MySQLdbは、Pythonの

bizIds = data[i] 

は私のデータベースにデータを挿入しようとしているところ特定のビジネスIDがテーブルにあります。

これは、これまでの私のコードです:私はプログラムを実行すると

 bizIds = data[i] 
     #do some stuff 

     cursor = db.cursor()     

     ##Inserting into Datebase 
     writeIt = """INSERT INTO business (`Industry`,`Company Form`) VALUES (%s, %s) WHERE `Business ID` = %s""" 

     ##Executing the query 
     cursor.execute(writeIt, (Industry.text, CompanyForm.text, bizIds)) 
     db.commit() 

、私はエラーメッセージを取得:(1064, '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 \'WHERE Business ID = ("\'0986132\'",)\' at line 1')をだから、括弧内の正しいビジネスIDを示しているが、それはレコードを挿入しません。 。

アドバイスはありますか?

答えて

1

Industry.textとCompanyForm.textがどのようなものかはっきりしていませんが、私はそれらがあなたのスクリプトの他の部分から来ていると想定しています。

INSERT INTOの代わりにUPDATEを使用する必要があると思います。

writeIt = """UPDATE business SET `Industry` = %s, `Company Form` = %s WHERE `Business ID` = %s""" 

INSERT INTOはレコードを追加し、WHERE句をサポートしません。これが元のエラーの原因です。すでに存在するレコードを更新する必要があるようです。

+0

あなたの答えをありがとう!それは私が疲れているとコードしようとするものです!私はもう一つ質問があります。あなたが提案したようにINSERTをUPDATEに置き換えましたが、今私はこのエラーを受け取ります: '(1064、" SQL構文に誤りがあります。正しい構文を使用するにはMariaDBサーバのバージョンに対応するマニュアルをチェックしてください。 near ')' at line 1 ")'私は 'cursor.execute'行と関係があると思います。私はそれをもっと研究するつもりです。どんな考え/意見ですか? – Millica

+0

もう1つのことは、ループのbizIdsを印刷すると、出力がこのようなものであることに気付きました。 '( '0986132'、)'それは問題になる可能性がありますか? – Millica

+0

私はそれを修正しました!ありがとうございました! – Millica