質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

9053閲覧

PythonでのMySQLへの挿入方法について

u_k_statistics

総合スコア44

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2016/09/09 16:03

編集2016/09/09 16:19

Pythonでmysqlconnectorを使ってデータを挿入したいのですが、たとえば

hc pc

という項目があるデータベースに
123 123
234 234
234 234
234 234
234 234
123 123
234 234
234 234
234 234
234 234

というデータを挿入したい場合どのようにプラグラムを書けば良いのでしょうか?

connect

1 user='root', 2 password='', 3 host='xxxx') 4cursor = connect.cursor() 5comma = ',' 6for j in range(1,3): 7 sql = '\'insert into database (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 sql = sql + '\'' 19 print sql 20 cursor.execute(sql) 21 connect.commit() 22cursor.close() 23connect.close()

のように書いたのですがエラーになってしまいました。
エラーを読もうと思ったのですがなにやらよくわかりません

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 ''insert into database (hc,pc) values (123,123),(234,234),(234,234),(234,234' at line 1 [Finished in 0.1s with exit code 1]

どなたかよろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

エラーメッセージより、sql.execute()に与えられたSQLの文法にエラーとあります。
print sqlの箇所で画面に表示されるSQLを確認して、正しいSQL文になるようにプログラムを修正しましょう。

投稿2016/09/09 23:46

yukkeorg

総合スコア985

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

u_k_statistics

2016/09/10 07:27

yukkeorgさん print sqlで表示された内容は 'insert into yamanashi.234 (hc,pc) values (123,123),(234,234),(234,234),(234,234),(234,234)' でした。 あってるように思えるのですが間違っていますでしょうか?
yukkeorg

2016/09/10 09:15

SQL文の最初と最後に ' (シングルクォーテーション)を付けていますが、それが不要かと思います。あと、最後にSQL文の最後に ; (セミコロン)が必要かもしれません。
u_k_statistics

2016/09/10 15:37

yukkeorgさん ありがとうございます!! おかげさまで解決しました!! またよろしくお願いします!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問