最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python3往mysql插入二進(jìn)制圖片出現(xiàn)1064錯誤

 更新時(shí)間:2023年03月14日 08:38:21   作者:Demonson  
這篇文章主要介紹了python3往mysql插入二進(jìn)制圖片出現(xiàn)1064錯誤的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

往mysql插入二進(jìn)制圖片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()

上面代碼運(yùn)行時(shí),mysql會報(bào)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()

再次運(yùn)行成功;

因?yàn)槟承┪臋n干擾,在網(wǎng)上找了大半天才找倒原因問題,pymysql中的參數(shù)%s是不用加''號的,當(dāng)我們插入字符串的時(shí)候可能不會應(yīng)為這個問題報(bào)錯,因?yàn)樽址旧硪灿幸?,再次加引號不會?bào)錯,但二進(jìn)制格式的話就會報(bào)錯

圖片如何以二進(jìn)制存入mysql

MYSQL 支持把圖片存入數(shù)據(jù)庫,也相應(yīng)的有一個專門的字段 BLOB (Binary Large Object)

首先要在你的mysql數(shù)據(jù)庫中創(chuàng)建一個表,用于存儲圖片

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

然后用python代碼將本地的圖片存到數(shù)據(jù)庫中

# coding=utf-8
 
import MySQLdb
import sys
 
try:
    fin = open("/home/dsq/tb/8.jpg") #打開本地圖片,路徑要寫自己的
    img = fin.read()
    fin.close()   #讀取結(jié)束,關(guān)閉文件
except IOError as e:
    print "Error %d: %s" % (e.args[0], e.args[1])
    sys.exit(1)   #出現(xiàn)錯誤打印錯誤并退出
 
 
try:
    conn = MySQLdb.connect(host="localhost", port=3306, user="root", passwd="#你的數(shù)據(jù)庫密碼#", db="數(shù)據(jù)庫名")    #連接到數(shù)據(jù)庫
 
    cursor = conn.cursor()    #獲取cursor游標(biāo)
    cursor.execute("INSERT INTO Images SET Data='%s'" % MySQLdb.escape_string(img))   #執(zhí)行SQL語句
 
    conn.commit()   #提交數(shù)據(jù)
    cursor.close()
    conn.close()    #斷開連接
except MySQLdb.Error,e:
    conn.rollback()
    print "Error %d: %s" % (e.args[0], e.args[1])
    sys.exit(1)    #出現(xiàn)錯誤,自動回滾,打印錯誤并退出

發(fā)現(xiàn)圖片成功存儲到數(shù)據(jù)庫中

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python如何獲取對象大小和文件大小

    Python如何獲取對象大小和文件大小

    這篇文章主要介紹了Python如何獲取對象大小和文件大小問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Python多線程入門學(xué)習(xí)

    Python多線程入門學(xué)習(xí)

    這篇文章主要介紹了Python多線程入門學(xué)習(xí),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-12-12
  • Python計(jì)算程序運(yùn)行時(shí)間的方法

    Python計(jì)算程序運(yùn)行時(shí)間的方法

    這篇文章主要介紹了Python計(jì)算程序運(yùn)行時(shí)間的方法,分別記錄起始時(shí)間與結(jié)束時(shí)間,計(jì)算兩者之間的差值來獲得程序的運(yùn)行時(shí)間,需要的朋友可以參考下
    2014-12-12
  • Python中的Descriptor描述符學(xué)習(xí)教程

    Python中的Descriptor描述符學(xué)習(xí)教程

    簡單來說,數(shù)據(jù)描述符是指實(shí)現(xiàn)了__get__、__set__、__del__方法的類屬性,等效于定義了三個方法的接口,下面就來詳細(xì)看一下Python中的Descriptor修飾符學(xué)習(xí)教程
    2016-06-06
  • 基于Python編寫將文本轉(zhuǎn)換為語音的簡易應(yīng)用

    基于Python編寫將文本轉(zhuǎn)換為語音的簡易應(yīng)用

    這篇文章主要介紹了如何使用Python編寫一個簡單的應(yīng)用程序,將文本轉(zhuǎn)換為語音,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以動手嘗試一下
    2023-08-08
  • Python結(jié)合requests和Cheerio處理網(wǎng)頁內(nèi)容的操作步驟

    Python結(jié)合requests和Cheerio處理網(wǎng)頁內(nèi)容的操作步驟

    Python因其簡潔明了的語法和強(qiáng)大的庫支持,成為了編寫爬蟲程序的首選語言之一,requests庫是Python中用于發(fā)送HTTP請求的第三方庫,而Cheerio庫則是一個用于解析HTML和XML文檔的庫,本文給大家介紹了Python結(jié)合requests和Cheerio處理網(wǎng)頁內(nèi)容的操作步驟
    2025-01-01
  • Python?logging日志模塊的概念與實(shí)踐講解

    Python?logging日志模塊的概念與實(shí)踐講解

    本文通過具體的代碼示例為大家解釋了如何高效地使用logging模塊進(jìn)行日志記錄,以及如何避免常見的陷阱,希望可以幫助大家更好地掌握這個強(qiáng)大的工具
    2023-07-07
  • 使用Python腳本在Linux下實(shí)現(xiàn)部分Bash Shell的教程

    使用Python腳本在Linux下實(shí)現(xiàn)部分Bash Shell的教程

    這篇文章主要介紹了使用Python腳本在Linux下實(shí)現(xiàn)部分Bash Shell的教程,包括一些簡單的輸入輸出和郵件功能,需要的朋友可以參考下
    2015-04-04
  • Python使用迭代器捕獲Generator返回值的方法

    Python使用迭代器捕獲Generator返回值的方法

    這篇文章主要介紹了Python使用迭代器捕獲Generator返回值的方法,結(jié)合具體實(shí)例形式分析了Python迭代器獲取生成器返回值的相關(guān)操作技巧,需要的朋友可以參考下
    2017-04-04
  • 如何利用python查找電腦文件

    如何利用python查找電腦文件

    利用python查找電腦里的文件非常方便,首先是導(dǎo)入模塊os,然后利用os.listdir()打開目錄下的所有文件,files其實(shí)是一個列表。具體操作方法大家參考下本文
    2018-04-04

最新評論

揭东县| 阿勒泰市| 鲁甸县| 潼关县| 云安县| 依兰县| 博白县| 错那县| 襄汾县| 罗山县| 普洱| 鄢陵县| 黄石市| 错那县| 琼结县| 合阳县| 聂荣县| 仁怀市| 淅川县| 讷河市| 新民市| 沁阳市| 土默特右旗| 黎川县| 宁武县| 宕昌县| 佛坪县| 佛冈县| 隆化县| 贵州省| 张北县| 叙永县| 平山县| 桑日县| 二连浩特市| 海宁市| 通许县| 宁国市| 报价| 安丘市| 屏东市|