iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >python3往mysql插入二进制图片出现1064错误如何解决
  • 498
分享到

python3往mysql插入二进制图片出现1064错误如何解决

PythonMySQL 2023-05-18 20:05:37 498人浏览 独家记忆
摘要

往Mysql插入二进制图片1064错误 conn = pymysql.connect(*) cur = conn.cursor() os.chdir('/home/jibo/zxCSSpider/images/full/'

Mysql插入二进制图片1064错误

 conn = pymysql.connect(*)
 cur = conn.cursor()
 os.chdir('/home/jibo/zxCSSpider/images/full/')
 list = os.listdir()
 count1 = 0
 for imagename in list:
     count1 += 1
     f = open(imagename, 'rb')
     data = f.read()
     f.close()
     imagepath = '/home/images/full/' + imagename
     imagebin = pymysql.Binary(data)
     sql = "insert into images(imagename,imagepath,imagebin) values('%s', '%s', '%s')"
     cur.execute(sql, (imagename, imagepath, imagebin))
     conn.commit()
 print('image:' + str(count1))
 cur.close()
 conn.close()

上面代码运行时,mysql会报1064错误:

pymysql.err.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 'cecedd67b6d4716bdbab9fac36e0b2ad1c81cbac.jpg'', ''/home/images/f' at line 1")

修改:将('%s', '%s', '%s')改为(%s, %s, %s)

 
 conn = pymysql.connect(*)
 cur = conn.cursor()
 os.chdir('/home/images/full/')
 list = os.listdir()
 count1 = 0
 for imagename in list:
     count1 += 1
     f = open(imagename, 'rb')
     data = f.read()
     f.close()
     imagepath = '/home/images/full/' + imagename
     imagebin = pymysql.Binary(data)
     sql = "insert into images(imagename,imagepath,imagebin) values(%s, %s, %s)"
     cur.execute(sql, (imagename, imagepath, imagebin))
     conn.commit()
 print('image:' + str(count1))
 cur.close()
 conn.close()

再次运行成功;

因为某些文档干扰,在网上找了大半天才找倒原因问题,pymysql中的参数%s是不用加''号的,当我们插入字符串的时候可能不会应为这个问题报错,因为字符串本身也有引号,再次加引号不会报错,但二进制格式的话就会报错

图片如何以二进制存入mysql

MYSQL 支持把图片存入数据库,也相应的有一个专门的字段 BLOB (Binary Large Object)

首先要在你的mysql数据库中创建一个表,用于存储图片

CREATE TABLE Images(Id INT PRIMARY KEY AUTO_INCREMENT, Data MEDIUMBLOB);

然后用python代码将本地的图片存到数据库中

# coding=utf-8
 
import MySQLdb
import sys
 
try:
    fin = open("/home/dsq/tb/8.jpg") #打开本地图片,路径要写自己的
    img = fin.read()
    fin.close()   #读取结束,关闭文件
except IOError as e:
    print "Error %d: %s" % (e.args[0], e.args[1])
    sys.exit(1)   #出现错误打印错误并退出
 
 
try:
    conn = MySQLdb.connect(host="localhost", port=3306, user="root", passwd="#你的数据库密码#", db="数据库名")    #连接到数据库
 
    cursor = conn.cursor()    #获取cursor游标
    cursor.execute("INSERT INTO Images SET Data='%s'" % MySQLdb.escape_string(img))   #执行SQL语句
 
    conn.commit()   #提交数据
    cursor.close()
    conn.close()    #断开连接
except MySQLdb.Error,e:
    conn.rollback()
    print "Error %d: %s" % (e.args[0], e.args[1])
    sys.exit(1)    #出现错误,自动回滚,打印错误并退出

python3往mysql插入二进制图片出现1064错误如何解决

发现图片成功存储到数据库中

以上就是python3往mysql插入二进制图片出现1064错误如何解决的详细内容,更多请关注编程网其它相关文章!

您可能感兴趣的文档:

--结束END--

本文标题: python3往mysql插入二进制图片出现1064错误如何解决

本文链接: https://www.lsjlt.com/news/212358.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python3往mysql插入二进制图片出现1064错误如何解决
    往mysql插入二进制图片1064错误 conn = pymysql.connect(*) cur = conn.cursor() os.chdir('/home/jibo/zxcsSpider/images/full/'...
    99+
    2023-05-18
    Python MySQL
  • python3往mysql插入二进制图片出现1064错误
    目录往mysql插入二进制图片1064错误图片如何以二进制存入mysql总结往mysql插入二进制图片1064错误 conn = pymysql.connect(*) cur =...
    99+
    2023-03-14
    python3 mysql 1064错误 mysql插入二进制图片 二进制图片1064错误
  • mysql制作外键出现duplicate key name错误如何解决
    本篇内容主要讲解“mysql制作外键出现duplicate key name错误如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql制作外键出现duplicate...
    99+
    2023-07-05
  • 如何解决mysql出现10055错误问题
    这篇文章主要介绍如何解决mysql出现10055错误问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!mysql出现10055错误的解决办法:首先查一下netstat有多少连接和等待...
    99+
    2024-04-02
  • mysql出现错误代码2502如何解决
    小编给大家分享一下mysql出现错误代码2502如何解决,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!mysql出现错误代码25...
    99+
    2024-04-02
  • 如何解决写入 CSV 时出现“短写入”错误
    今日不肯埋头,明日何以抬头!每日一句努力自己的话哈哈~哈喽,今天我将给大家带来一篇《如何解决写入 CSV 时出现“短写入”错误》,主要内容是讲解等等,感兴趣的朋友可以收藏或者有更好的建议在评论提出,...
    99+
    2024-04-04
  • java导入程序出现import错误如何解决
    如果在Java程序中导入语句出现错误,可以尝试以下解决方法:1. 检查导入语句是否正确:确保导入语句的语法正确,包括正确的包名和类名...
    99+
    2023-09-15
    java
  • mysql数据库中出现1045错误如何解决
    mysql数据库中出现1045错误如何解决?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。解决方案:1.找到MySQL安装路径下...
    99+
    2024-04-02
  • 如何解决navicat for mysql出现10061错误的解决方法
    小编给大家分享一下如何解决navicat for mysql出现10061错误的解决方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!打开“Navicat for MySQL”中已有的链接...
    99+
    2024-04-02
  • 远程连接mysql时出现1130错误如何解决
    远程连接mysql时出现1130错误解决方法:1.启动mysql;2.登录mysql数据库;3.进入数据表;4.执行命令查看host值;5.修改host值;6.更新数据库,重新连接即可;具体步骤如下:首先,在本地环境中启动mysql服务;s...
    99+
    2024-04-02
  • 在python中写入文件时出现错误如何解决
    在python中写入文件时出现错误如何解决?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Python主要用来做什么Python主要应用于:1、Web开发;2、数...
    99+
    2023-06-14
  • 在打开mysql-front进入数据库时出现1146错误的解决方法
    这篇文章将为大家详细讲解有关在打开mysql-front进入数据库时出现1146错误的解决方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。  在打开mysql-fron...
    99+
    2024-04-02
  • 如何解决WordPress导入数据库出现Unknown collation: ‘utf8mb4_unicode_ci的错误
    本篇内容主要讲解“如何解决WordPress导入数据库出现Unknown collation: ‘utf8mb4_unicode_ci的错误”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。...
    99+
    2024-04-02
  • Mysql数据库绿色版出现系统错误1067如何解决
    这篇文章主要介绍了Mysql数据库绿色版出现系统错误1067如何解决,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。插件的安装:安装版有的软件有插...
    99+
    2024-04-02
  • 如何解决MySQL安装ODBC驱动出现126错误的问题
    这篇文章主要介绍了如何解决MySQL安装ODBC驱动出现126错误的问题,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。MySQL安装ODBC驱动...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作