質問編集履歴

1 補足

starrow1103

starrow1103 score 111

2017/03/06 22:54  投稿

SQlite3に特定の文字列が記録できない
## 環境
Python3.6.0
Flask
macOS Sierra
##やりたいこと
作成したテーブルに「http://hogehoge.com」等のURLをINSERTしたい
##エラー内容
```python
<略>
class Database():
   def __init__(self):
       self.dbpath = os.path.join(app.root_path, 'database.db')
       self.connection = sqlite3.connect(self.dbpath)
       self.connection.isolation_level = None
       self.cursor = self.connection.cursor()
   def insert(self,url,img_src,title,description,count):
       connection=self.connection
       cursor=self.cursor
       cursor.execute("INSERT INTO url_list VALUES (%s,%s,%s,%s,%s)" % (url,img_src,title,description,count))
       connection.commit()
       connection.close()
Data=Database()
Data.insert('http://hoge.com',"img.jpg","タイトル","ディスクリプション",1)
```
実行すると、以下のエラーが発生します。
```
sqlite3.OperationalError: unrecognized token: ":"
```
そして、「:」を消すと次は
```
sqlite3.OperationalError: near "/": syntax error
```
さらに、「/」を決してみると次は
```
sqlite3.OperationalError: no such column: httphoge.com ←:も/も消したやつ
```
となってしまいます。
どん詰まりです。
どなたか、ご教授くださいませ・・・・・・。
どなたか、ご教授くださいませ・・・・・・。
追記:
ちなみに、
```
cursor.execute("INSERT INTO url_list VALUES (%s,%s,%s,%s,%s)" % (url,img_src,title,description,count))
```
の部分を
```
cursor.execute("INSERT INTO url_list VALUES (url,img_src,title,description,count)")
```
に直してみたところ、以下のエラーになりました。
```
sqlite3.OperationalError: no such column: url
```
  • Python

    18862 questions

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

  • Python 3.x

    14238 questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る