python往mysql的blob字段写入二进制数据,怎么做

python往mysql的blob字段写入二进制数据,怎么做,第1张

这有什么难的吗?

你把你的二进制数据可以转成文本串插入,就跟普通的插入一样啊。

import MySQLdb, cPickle

# Connect to a DB, e.g., the test DB on your localhost, and get a cursor

connection = MySQLdb.connect(db="test")

cursor = connection.cursor( )

# Make a new table for experimentation

cursor.execute("CREATE TABLE justatest (name TEXT, ablob BLOB)")

try:

# Prepare some BLOBs to insert in the table

names = 'aramis', 'athos', 'porthos'

data = { }

for name in names:

datum = list(name)

datum.sort( )

data[name] = cPickle.dumps(datum, 2)

# Perform the insertions

sql = "INSERT INTO justatest VALUES(%s, %s)"

for name in names:

cursor.execute(sql, (name, MySQLdb.escape_string(data[name])) )

# Recover the data so you can check back

sql = "SELECT name, ablob FROM justatest ORDER BY name"

cursor.execute(sql)

for name, blob in cursor.fetchall( ):

print name, cPickle.loads(blob), cPickle.loads(data[name])

finally:

# Done. Remove the table and close the connection.

cursor.execute("DROP TABLE justatest")

connection.close( )

以PHP脚本为例。PHP一般只支持小于2M的文件,假如要存取大于2M的文件,那就要进系统方面的设置了。具体 *** 作如下:

首先创建测试表testtable

CREATE TABLE testtable ( id INT(5) NOT NULL AUTO_INCREMENT PRIMARY KEY,filename CHAR(255),data LONGBLOB )

将文件存入表中使用如下PHP代码

<?php

mysql_connect( "localhost", "root", "password") //连接数据库

mysql_select_db( "database") //选定数据库

$filename="" //这里填入二进制文件名

$data = addslashes(fread(fopen($filename, "r"), filesize($filename)))//打开文件并规范化数据存入变量$data中

$result=mysql_query( "INSERT INTO testtable (filename,data) VALUES ('$filename','$data')")//数据插入到数据库test表中

mysql_close()

?>

从表中取回文件,使用如下PHP代码

<?php

if($id) {

mysql_connect( "localhost", "root", "password")

mysql_select_db( "database")

$filename="" //这里填入二进制文件名

$query = "select data from testtable where filename=$filename"

$result = mysql_query($query)

$data = mysql_result($result,0, "data")

?>


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/6113836.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-15
下一篇2023-03-15

发表评论

登录后才能评论

评论列表(0条)

    保存