PHP China | 中国开源之路 's Archiver

rocing 发表于 2008-11-17 20:26

MYSQL中如何存取二进制文件

首先创建测试表testtable
[php]CREATE TABLE testtable ( id INT(5) NOT NULL AUTO_INCREMENT PRIMARY KEY,filename CHAR(255),data LONGBLOB ); [/php]

将文件存入表中

[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]

<?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");
?>
[/php]

这里要注意的是,PHP一般只支持小于2M的文件,如果要存取大于2M的文件,那就要进系统方面的设置了

[[i] 本帖最后由 rocing 于 2008-11-17 20:27 编辑 [/i]]

saiyunnana 发表于 2008-11-18 09:11

好方法呢
只是如果读取文件的话
用unpack会不会简单点

[[i] 本帖最后由 saiyunnana 于 2008-11-18 09:14 编辑 [/i]]

youscript 发表于 2008-11-18 20:51

学习了,
以前用file_get_contents老是出错,原来要用二进制读

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.