汗,以前一直误以为MySQL不能存储图片
在mysql中建立一个新的数据库
一个怎样储存文件的例子程序
一个怎样访问文件的例子程序
在mysql中建立一个表
CREATE TABLE binary_data ( id INT(4) NOT NULL AUTO_INCREMENT PRIMARY KEY,description CHAR(50), bin_data LONGBLOB, filename CHAR(50), filesize CHAR(50), filetype CHAR(50));
< ?php
// getdata.php3 – by Florian Dittmer <[email protected]> // 调用方法: getdata.php3?id=<id>
if($id) {
// 你可能需要调整主机名,用户名和密码: @MYSQL_CONNECT( "localhost", "root", "password");
@mysql_select_db( "binary_data");
$query = "select bin_data,filetype from binary_data where id=$id"; $result = @MYSQL_QUERY($query);
$data = @MYSQL_RESULT($result,0, "bin_data"); $type = @MYSQL_RESULT($result,0, "filetype");
Header( "Content-type: $type"); echo $data;
}; ?>
怎样储存大于1MB的文件:
如果你想储存大于2MB的文件,你必须对你的程序、PHP设置、SQL设置进行许多修改。
下面几条也许可以帮助你储存小于24MB的文件:
修改你的PHP设置,在一般情况下,PHP只允许小于2MB的文件,你必须将max_filesize(在php.ini中)的值改成24000000
去掉MYSQL的数据包大小限制,在一般情况下 MYSQL 小于1 MB的数据包.
你必须用以下参数重启你的MYSQL
/usr/local/bin/safe_mysqld -O key_buffer=16M -O table_cache=128 -O sort_buffer=4M -O record_buffer=1M -O max_allowed_packet=24M
如果仍然出错:
可能是超时错误,如果你通过一个很慢的连接来储存一个很大的文件,PHP缺省的时间限制为30秒。
你可以将max_execution_time(在php.ini中)的值改为-1
上面的例子在从数据库里读出图片数据时,是不是每次只读一张图的数据,好像查询语句少了条件吧,$id是怎么和查询对应的
这个是php3的代码,只是一个示意而已,呵呵。