Mysql 连接器错误 1064 - 更新 URL
Mysql Connector error 1064 - Update with URL
我正在 python 开发一个 Twitter 应用程序,我正在尝试更新数据库中的用户记录。我可以正常插入,但更新时出现以下错误:
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
下面是我用于更新的代码:
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 并且它没有任何错误地执行了更新。
任何人都可以看到解决方案吗?
关于准备好的语句是正确的。这不仅难以调试,而且还存在安全风险。你的 vunerable 到 SQL 注射。
无论如何,我认为你的问题是缺少引号。
...", profile_image_url='" + all_data['user']['profile_image_url'] + "' WHERE user_id="...
我正在 python 开发一个 Twitter 应用程序,我正在尝试更新数据库中的用户记录。我可以正常插入,但更新时出现以下错误:
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
下面是我用于更新的代码:
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 并且它没有任何错误地执行了更新。 任何人都可以看到解决方案吗?
无论如何,我认为你的问题是缺少引号。
...", profile_image_url='" + all_data['user']['profile_image_url'] + "' WHERE user_id="...