前回の質問の続きで申し訳ないのですが、pythonでmySQLにデータを入れようと思い、以下のコードを書いたのですが、実行されませんでした。
comma = ',' db_final = [[11,12],[21,22],[31,32],[41,42],[51,52]] connect = mysql.connector.connect( user='root', password='', host='xxxx') cursor = connect.cursor() for j in range(1,3): sql = 'insert into database.0912 (hc,pc) values ' for i in range(5*(j-1),5*(j-1) + 1): sql2 = '(db_final[' + str(i) + '][0],db_final[' + str(i) + '][1])' sql = sql + sql2 for i in range(5*(j-1) + 1,5*j): sql2 = '(db_final[' + str(i) + '][0],db_final[' + str(i) + '][1])' sql = sql + comma + sql2 print sql cursor.execute(sql) connect.commit() # cursor.close() # connect.close() cursor.close() connect.close()
以下エラーコード
insert into database.0912 (hc,pc) values (db_final[0][0],db_final[0][1]),(db_final[1][0],db_final[1][1]),(db_final[2][0],db_final[2][1]),(db_final[3][0],db_final[3][1]),(db_final[4][0],db_final[4][1]) Traceback (most recent call last): File "test111.py", line 75, in <module> cursor.execute(sql) File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/mysql/connector/cursor.py", line 507, in execute self._handle_result(self._connection.cmd_query(stmt)) File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/mysql/connector/connection.py", line 722, in cmd_query result = self._handle_result(self._send_cmd(ServerCmd.QUERY, query)) File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/mysql/connector/connection.py", line 640, in _handle_result raise errors.get_exception(packet) mysql.connector.errors.ProgrammingError: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[0][0],db_final[0][1]),(db_final[1][0],db_final[1][1]),(db_final[2][0],db_final[' at line 1 [Finished in 0.1s with exit code 1]
前回質問させていただいた際の回答を参考にさせてもらい作成したプログラムは実行されたのですが、挿入するデータを文字列(?)から変数に変更したところこのようになってしまいました。
どなたか原因がわかる方よろしくお願いします。
前回のコード
comma
1connect = mysql.connector.connect( 2 user='root', 3 password='', 4 host='xxxx') 5cursor = connect.cursor() 6for j in range(1,3): 7 sql = 'insert into database.0912 (hc,pc) values ' 8 9 10 for i in range(5*(j-1),5*(j-1) + 1): 11 sql2 = '(123,123)' 12 sql = sql + sql2 13 14 15 for i in range(5*(j-1) + 1,5*j): 16 sql2 = '(234,234)' 17 sql = sql + comma + sql2 18 print sql 19 cursor.execute(sql) 20 connect.commit() 21 # cursor.close() 22 # connect.close() 23 24 25 26cursor.close() 27connect.close()

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/13 10:25
2016/09/13 11:42
2016/09/14 08:56
2016/09/14 10:34