我爱Aspx >> C#.Net >> PHP 留言簿(带Oracle数据库分页的显示功能)_PHP实例程式大概分成五部份
1.. 设定 Oracle 需要的环境变数
2.. 连上 Oracle 资料库
3.. 整理资料,送入 Oracle 中
4.. 结束与 Oracle 的连线
5.. 结束程式,显示最新的留言资料
在设定 Oracle 环境的部份,用 PHP 的函式 putenv(),可设定作业系统层的环境变数。要使用中文要记得加入下面这行
putenv("NLS_LANG=american_taiwan.zht16big5");
之后就使用 Oracle 函式库的功能: ora_logon() 等等。详见 Oracle 资料库函式库。利用这个函式库,可以很轻易的操作 Oracle 资料库。
再来就是整理资料,以便置入 Oracle 资料库中
$serial=md5(uniqid(rand()));
$ref="";
$id=$PHP_AUTH_USER;
$ip=$REMOTE_ADDR;
$msg=base64_encode($msg);
$flag="1";
$query="INSERT into guestbook(serial, ref, id, alias, ip, msgdate,
email, msg, flag) values('$serial', '$ref', '$id', '$alias', '$ip', sysdate,
'$email', '$msg', '$flag')";
$serial 变数为独一无二的字串,程式先乱数产生独特的字串,再用 md5 编码,将字串弄乱,形成类似杂凑处理后的无意义字串。由于字串长,又变得很乱,可防止使用者,尤其是骇客或飞客利用序号来戳系统。
$ref 变数目前是无效的。$id 变数为使用者认证用,若在程式开始处有加入使用者认证的程式,则 $PHP_AUTH_USER 会变成使用者的帐号,传入 $id 变数中。
至于使用者写的字串,为了防止资料库或处理时的复杂性甘脆将它用 BASE64 编码。可以让中文字的奇怪字元一字消失,当然这是锯箭法,不过对 Web 程式而言,执行快速、修改方便才是最重要的,实在没有必要再浪费精力去处理这些中文的冲码问题了。值得注意的是使用 BASE64 编码,会让字串膨胀大约 1/3,若资料库的储存空间有限,可能就不适合用这个方法了,话又说回来,现在硬碟便宜,随便就是十几 GB 以
上,应该不会考虑资料库空间有限的问题才对。
最后,将变数整理成 $query 字串,供资料库执行 SQL 指令使用就可以了。
ora_parse($cursor, $query) or die;
ora_exec($cursor);
ora_close($cursor);
ora_logoff($handle);
要执行 Oracle 的 SQL 指令前,要先经过 parse 的动作。若在前面加上 @ (如: @ora_prase();),可以不让使用者看到错误讯息。在执行 query 指令后,就可以关闭与 Oracle 之间的连线了。
Ҷƪл˵?
用PHP实现ODBC数据分页显示一例_..[04-28]
数据分页方法新思路,速度非常快..[04-28]
Access2000数据库80万记录通用快..[04-28]
SQL Server 2005: 利用新的ranki..[04-28]
如何在SqlServer与oracel中进行分..[04-28]
关于SQL Server SQL语句查询分页..[04-28]
SQL Server 2005 提供的分页查询..[04-28]
VB6 ADO ListView数据库分页显示..[04-28]
Repeater读取数据并分页 _ASP.NE..[04-28]
Sql server 2005带来的分页便利_..[04-28]
用PHP实现ODBC数据分页显示一例_..[04-28]
在ASP中,用JScript脚本实现分页..[04-28]
原创的自定义分页UserControl 分..[04-28]
数据分页方法新思路,速度非常快..[04-28]
分栏显示记录集的表格演示,并实..[04-28]
用ASP实现长文章用分页符来分页显..[04-28]
Access2000数据库80万记录通用快..[04-28]
SQL Server 2005: 利用新的ranki..[04-28]
模仿PHP写的ASP分页 _ASP技巧[04-28]
ASP.NET程序中用Repeater实现分页..[04-28]