【问题标题】:python-mysqldb insert image int value errorpython-mysqldb插入图像int值错误
【发布时间】:2015-01-12 07:07:23
【问题描述】:

只是想用树莓派拍照并将实际的日期时间和图片插入到 mysql 数据库中......我试图只插入日期时间......这很好。但我在插入图像时出错...

          image = open(picPath+filename, 'r')
            pic = image.read()
            mysql = MySQLdb.connect(host="local", user="root", passwd="bla", db="sexyimages")
            cur = mysql.cursor()
            sql = ("insert into test(SampleTime, picture) values(%s, %s)")
            cur.execute(sql, (jetzt, pic))
            mysql.commit()

警告:不正确的整数值:第 1 行的列“图片”的“????c?Exif” cur.execute(sql, (jetzt, pic))

任何人的想法?

哦,你用 python-mysqldb

干杯

【问题讨论】:

  • 没有声明为 mediumblob....
  • 啊,你可以试试把文件打开方式从'r'改成'rb'
  • with 'rb' raspistill -v -o/home/pi/webcam/webcam-2014-11-14_20:05:53.jpg script.sh:51:警告:不正确的整数值:' ????c?Exif' 用于第 1 行的列 'picture' cur.execute(sql, (jetzt, pic)) 与 'r' 相同

标签: python mysql raspberry-pi mysql-python


【解决方案1】:

根据this answer我发现你必须先关闭文件指针,然后使用MySQL.escape_string方法转义字符串。试试这个:

image = open(picPath+filename)
pic = image.read()
image.close()

mysql = MySQLdb.connect(host="local", user="root", passwd="bla", db="sexyimages")
cur = mysql.cursor()
cur.execute("insert into test SET SampleTime='%s', picture='%s'") %(jetzt, MySQLdb.escape_string(pic))

mysql.commit()

【讨论】:

  • raspistill -v -o/home/pi/webcam/webcam-2014-11-14_20:59:08.jpg script.sh:52:警告:不正确的整数值:'???? d\0Exif\0\0MM\0*\0\0\\0\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\0 \0\0\0 \0\0\0?\0\0\0\0\n\0\0\0?\Z\0\0\0\' 用于第 1 行 cur 的列“图片”。执行(sql,(jetzt,MySQLdb.escape_string(pic))):(仍然不是正确的cmd
  • 已编辑答案。在要插入的值周围添加引号。
  • 当你print pic时你会得到什么
  • 很多未定义的野生文本。 (?? ?S?????@Xm@?ʢ??????4$o-w63???V]?Il?RnQ?q??9??f%?????n ?? ??$??8?9;???.@2?L???p ??U[pa??^???G???Z?چ???I__????{ ?Ryc?̓U#{.?yS?1??d88??T?v?,?~??h???!?=??n J`?y???J?{UD?? ??H?!N?ۂ???)D??՛????ke7i;4??Kw???Ml_????'r0???Y?e!?$/Ur? WG?z??m?B?ѐ$7F%?J??Tn?? ~\ ?%??S????@?*??P??\j8?*8f?
  • 已编辑:我再次更正了我的代码。变量名应该是pic。我在那里有MYpic
猜你喜欢
  • 2012-07-11
  • 2019-10-17
  • 1970-01-01
  • 1970-01-01
  • 2011-06-11
  • 2016-06-08
  • 2015-09-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多