为什么要将文件保存到数据库呢?理由很多,最直接的就是,将文件放入数据库以后,可以对文件进行更好的管理,特别是文本文件、图片等,如果不使用数据库,数量巨大的时候,很难做到有效的管理和区别。特别是需要作一些与文字密切相关的应用的时候,将文件全部放入数据库是最好的选择,对文字的处理、检索等,都可以直接利用数据库的一些功能,可以做到真正的有效管理。本文举例主要针对以文字为基础的文件,比如WORD等,但是,实际上对程序稍微修改,就可以上传所有文件类型。 数据表结构 现在,我们来看存放文件的数据库表结构,这里,我们给出建立表的...
//+-------------------------------------------------
//| 文件 validate_image.php
//| 预先在支持GD库的做好一些图片,推荐使用GIF格式,文件名与图片里
//| 面的里面的数字一致,将图片放入一个文件夹。设置CONFIG里面的数据.
//| 引用 <IMG SRC="{ filepath }/validate_image.php">
//| 验证页面对比
//| $_COOKIE['validate'] == md5($_POST['input'])
//|==================CONFIG START===================
$image_path="numimage";// 图片文件路径 后面没有'/'
$image_ext ="gif";// 图片文件扩展名
//===================CONFIG E...
我用一个留言本程序作为例子,阐述php实现对文本数据库的数据显示、加入、修改、删除、查询五大基本操作的方法。
此文本数据库共有字段10个:客户IP、发言时间、客户名、客户EMAIL、客户主页地址、留言表情图片名、客户QQ、客户形象图片、留言内容、管理员回复内容。
1、加入数据程序段。
$date=date("Y-m-d H:i:s");//取得系统时间
$ip = $HTTP_SERVER_VARS[REMOTE_ADDR]; //取得发言的IP地址
$text=encode($gb_text);//去掉留言内容后面的空格.
$fp=fopen("gb.dat","a");//以只写模式打开gb.dat文本文件,文件指针指向文件尾部.
$str=$ip."|".$da...
通过PHP你可以轻松的连接到数据库,请求数据并将其显示在你的web站点中,甚至修改数据库中的数据。MySQL是一种很流行的数据库,并且在互联网中有许多有关PHP与MySQL的教程。MySQL是免费的,这一点也许就吸引了不少人。由于其广泛应用,我就不想在这里赘述MySQL的使用方法了。Oracle被大量在企业应用中采用,因此我们就利用Oracle来介绍PHP与数据库的连接。我们当然不会提及Oracle数据库的设计原理,原因是这已经超出了我们的讨论范围。
PHP提供了两套函数与Oracle连接,分别是ORA_和OCI函数。其中ORA_函数略显陈旧。OCI函数更新据说更好一些。两者的使用语法几乎相差无几。如前所述,你的PHP...
以下是在Linux下通过Apache+PHP对Mysql数据库的备份的文件代码:
文件一、Listtable.php (文件列出数据库中的所有表格,供选择备份)
请选择要备份的表格:
<?
$con=mysql_connect('localhost','root','xswlily');
$lists=mysql_list_tables("embed",$con);
//数据库连接代码
$i=0;
while($i$tb_name=mysql_tablename($lists,$i);
echo "".$tb_name."
";
//列出所有的表格
$i++;
}
?>
文件二、Backup.php
<?if ($table=="") header("Location:listtable.php");?>
<?
$con=mysql_connect('localhost','root','xswlily');
$query="selec...
class.config.php class.mysql.php class.page.admin.php <? /* * *主要用于数据库的各种操作 *尛紅褀2007-04-01 *函数列表 function Err($sql = "") //错误处理函数 function TDatabase($config) //连接数据库函数 function SelectDb($database) //选择数据库函数 function Query($SQL) //执行数据库查询函数 function FetchArray($result) //将查询结果倒入到数组函数,可通过下标和字段名访问结果 function FetchRow($result) //从结果集中取得一行作为枚举数组 function FetchObject($result) //从结果集中取得一行作为对象,只能通过字段名访问结果 function FreeResult(&$result) //释放结果内存 function NumRo...
在一些小型的应用中,完全没有必要使用大型数据库软件。自己做一个SQL解释器就能用数据库的方式来管理了。这个解释器,能解释常用的SQL命令。你可以自行添加其他功能。<?phpclass DB_text {var $conn;var $classname = "db_text";var $database;function on_create() {}function connect($database_name) {$this->database = $database_name;if(! file_exists($database_name)) {$this->conn = array();$this->_close();}$fp = fopen($this->database,"r");$this->conn = unserialize(fread($fp,filesize(...
揭露 PHP 应用程序中出现的五个常见数据库问题 —— 包括数据库模式设计、数据库访问和使用数据库的业务逻辑代码 —— 以及它们的解决方案。
如果只有一种 方式使用数据库是正确的……
您可以用很多的方式创建数据库设计、数据库访问和基于数据库的 PHP 业务逻辑代码,但最终一般以错误告终。本文说明了数据库设计和访问数据库的 PHP 代码中出现的五个常见问题,以及在遇到这些问题时如何修复它们。
问题 1:直接使用 MySQL
一个常见问题是较老的 PHP 代码直接使用 mysql_ 函数来访问数据库。清单 1 展示了如何直接访问数据...
一份gb2312.txt(184799字节)确实显得太大了点,而且还要经unicode转换。这份对照表为51965字节,要小的多了。对于无法使用iconv函数库的场合还是很实用的。<?php//对照表的使用$filename = "gb2utf8.txt";$fp = fopen($filename,"r");while(! feof($fp)) {list($gb,$utf8) = fgetcsv($fp,10);$charset[$gb] = $utf8;}fclose($fp);//以上读取对照表到数组备用/** gb2312到utf-8 **/function gb2utf8($text, &$charset) {//提取文本中的成分,汉字为一个元素,连续的非汉字为一个元素preg_match_all("/(?:[x80-xff].)|[x01-x7f]+/",$text,$tmp);$tmp = $tmp[0];//分离出汉字$ar = array_intersect($tmp, array_keys($charset));//替换汉字...
class cat{ public $data;
public function __construct() { @include "data.php"; $this->data = $class; }
public function CreateSortLevel($fatherlevel) { if(empty($fatherlevel)) { if(is_array($this->data)) &...
众所周知,缓存数据库查询的结果可以显著缩短脚本执行时间,并最大限度地减少数据库服务器上的负载。如果要处理的数据基本上是静态的,则该技术将非常有效。这是因为对远程数据库的许多数据请求最终可以从本地缓存得到满足,从而不必连接到数据库、执行查询以及获取结果。 但当您使用的数据库与 Web 服务器位于不同的计算机上时,缓存数据库结果集通常是一个不错的方法。不过,根据您的情况确定最佳的缓存策略却是一个难题。例如,对于使用最新数据库结果集比较重要的应用程序而言,时间触发的缓存方法(缓存系统常用的方法,它假设每次到达失效时间戳记时就重新生成缓存)可能并不是一个令人满意的解决方案。这种...
欲使用本函数库需先安装 zlib,可到 http://www.cdrom.com/pub/infozip/zlib/ 取得该函数库。 zclose: 关闭压缩文件。 gzeof: 判断是否在压缩文件尾。 gzfile: 读压缩文件到数组中。 gzgetc: 读压缩文件中的字符。 gzgets: 读压缩文件中的字符串。 gzgetss: 读压缩文件中的字符串,并去掉 HTML 指令。 gzopen: 打开压缩文件。 gzpassthru: 解压缩指针后全部资料。 gzputs: 资料写入压缩文件。 &n...
1. 分号的例外
对于 mysql ,第一件你必须牢记的是它的每一行命令都是用分号 (;) 作为结束的,但……没有完全绝对的事,在这儿也是一样,当一行 mysql 被插入在 php 代码中时,最好把后面的分号省略掉,例如:
mysql_query ("insert into tablename (first_name, last_name)
values ('$first_name', '$last_name')
");
这是因为 php 也是以分号作为一行的结束的,额外的分号有时会让 php 的语法分析器搞不明...
在动态网面设计中很多都要涉及到对数据库的操作,但是有时跟据需要而改用其它后台数据库,就需要大量修改程序。这是一件枯燥、费时而且容易出错的功作。其实我们可以用php中的类来实现对数据库操作的封装,从而使写出的程序在很小的改动下就可以完成后台数据库的更改。 现在我们把其封装在dbfz.inc中,其设计如下: class dbinterface{ var $dbid=1; //用于确定当前操作的数据库,当dbid为1代表mysql,当为 2代表 sql server,为3时为odbc或其它。 var $dbhost; //数据库所在主机域名 var $dbusername; //数据库用户名 v...
我们都知道如何从Mysql获取我们需要的行(记录),读取数据,然后存取一些改动。很明显也很直接,在这个过程背后也没有什么拐弯抹角的。然而对于我们使用面对对象的程序设计(OOP)来管理我们数据库中的数据时,这个过程就需要大大改进一下了。这篇文章将对如何设计一个面对对象的方式来管理数据库的记录做一个简单的描述。你的数据当中的所有内部逻辑关系将被封装到一个非常条理的记录对象,这个对象能够提供专门(专一)的确认代码系统,转化以及数据处理。随着Zend Engine2 和PHP5的发布,PHP开发者将会拥有更强大的面对对象的工具来辅助工作,这将使这个过程(面对对象地管理数据库)更有吸引力。 以下列出...
下面是Sql Server 和 Access 操作数据库结构的常用Sql,希望对你有所帮助。
新建表:
create table [表名]
(
[自动编号字段] int IDENTITY (1,1) PRIMARY KEY ,
[字段1] nVarChar(50) default '默认值' null ,
[字段2] ntext null ,
[字段3] datetime,
[字段4] money null ,
[字段5] int default 0,
[字段6] Decimal (12,4) default 0,
[字段7] image null ,
)
删除表:
Drop table [表名]
插入数据:
Insert INTO [表名] (字段1,字段2) VALUES (100,'51WINDOWS.NET')
删除数据:
Delete FROM [表名] Where [字段名]>100
更新数据:
Update [表名] SE...
类别:数据库 查看:120
更新:2014-05-19