2016-05-30 19 views
0

私はPythonでTwitterアプリケーションを開発中で、私のデータベースのユーザーレコードを更新しようとしています。私は罰金挿入することができますが、更新は次のエラーを提示:Mysql Connectorエラー1064 - URLで更新

以下
mysql.connector.errors.ProgrammingError: 1064: 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 '://pbs.twimg.com/profile_images/ 
735726715267679398/m%HAWxt7_normal.jpg WHERE use' at line 1 

は、私がUPDATEのために使用していますコードです:

cursor.execute("UPDATE user_table SET following='" + 
str(all_data['user']['following']) + "', followers_count=" + 
str(all_data['user']['followers_count']) + ", favourites_count=" + 
str(all_data['user']['favourites_count']) + ", friends_count=" + 
str(all_data['user']['friends_count']) + ", statuses_count=" + 
str(all_data['user']['statuses_count']) + ", verified=" + 
str(all_data['user']['verified']) + ", profile_image_url=" + 
all_data['user']['profile_image_url'] + " WHERE user_id=" + 
str(all_data['user']['id'])) 

私は、下の画面にSQLをプリントアウトしてきました

UPDATE user_table SET following='None', followers_count=252, 
favourites_count=3899, friends_count=12, statuses_count=506, 
verified=False, profile_image_url='http://pbs.twimg.com/profile_images 
/735726715267679398/m%HAWxt7_normal.jpg' WHERE user_id=2933205672 

私はこのSQLをphpmyadminに貼り付け、SQLを実行してエラーなしで更新を実行しました。 誰にでもこの解決策が見えますか?

+0

準備文について学ぶ – Jens

+0

SQLクエリはどのように印刷しましたか?私は彼らが同じだとは思わない。 – qvpham

答えて

1

Jensは、準備文については正しいです。これはデバッグが難しいだけでなく、セキュリティ上のリスクもあります。 SQLインジェクションへのあなたの大切さ。

とにかく、あなたの問題は引用符がありません。

...", profile_image_url='" + all_data['user']['profile_image_url'] + "' WHERE user_id="... 
+0

それはちょうど引用符がありませんでした、それを指摘してくれてありがとう。そして準備された声明を見てみましょう –