欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【php 之 没有mysql支持时的替代方案】,下面是详细的分享!
php 之 没有mysql支持时的替代方案
一般个人免费主页空间都不会提供mysql支持,就是提供也很苛刻,所以寻找也个良好的替代方案很重要哦!PHP的文件处理功能很强大,所以可以用文件的存取来代替来!
(要知道没有数据库的时候,什么都是用文件组织的哦!呵呵!),其中个数据项用特殊符号分割,我采用的是“||”,方便通过explode()函数读取单个记录!
其实这里数据库的思想还是可以用到的!象数据库的索引!
所以必须先做个索引文件!(这样说也并不正确)
就以留言本来说吧:
主要文件是:
index.database
其结构如下:
留言人姓名||留言人性别||留言时间||留言内容存放位置||feiyn(这项是方便读取时的被‘n’干恼的!
每条存储一行可以方便的通过PHP的fgets()函数读取,或者file()函数读取每行到数组
为了防止多人同是对数据的写入冲突,故还需要加锁(也用文件实现)
以下是写入代码
<?php
//必须传入以下参量:
//留言人姓名$name
//留言人性别$sex
//留言时间$time
//留言内容存放位置$savePosite
$indexFile="index.database";
$indexFileLock=$indexFile."Lock";
$message=$name."||".$sex."||".$time."||".$savePosite."||feiy||";//这就是要写入的记录
while(file_exists($indexFileLock))$temp++;//检测是否已加锁
fclose(fopen($indexFileLock,"w"));//如没有则进入并加锁避免同是访问冲突
$fp=fopen($indexFile,"a");
fputs($message,strlen($message));
fclose($fp);
unlink($indexFileLock);//解锁
?>
读取代码
<?php
$indexFile="index.database";
$indexFileLock=$indexFile."Lock";
while(file_exists($indexFileLock))$temp++;//检测是否已加锁
fclose(fopen($indexFileLock,"w"));//如没有则进入并加锁避免同是访问冲突
$ary=file($indexFile);
unlink($indexfileLock);//解锁
for($i=0;$i<sizeof($ary);$i++){
$tempAry=explode("||",$ary[$i]);
echo("name:".$tempAry[0]);
echo("sex:".$tempAry[1]);
echo("sex:".$tempAry[2]);
echo("savePosite:",$tempAry[3]);//可以从该地址读取留言内容
}
?>
通过以上可以方便的解决常用的网页运用,比如聊天室,BBS论坛,书签之类
以上所分享的是关于php 之 没有mysql支持时的替代方案,下面是编辑为你推荐的有价值的用户互动:
相关问题:MYSQL 不支持全外连接 但是 可以用一些语句代替 但...
答:select * from production as a right [outher] join liuyan as b on b.number=a.number where a.fl='$fl' and a.number='$bh' union select * from production as a left [outher] join liuyan as b on b.number=a.number where a.fl='$fl' and... >>详细
相关问题:php 插入mysql时数据没有插入,但是也没有报错,什...
答:表面上看,是因为你的insert 语句后面的值都没有用单引号或双引号包起来. 自己跟踪下还有没有其它错误, 最简单的就在mysql_query($sql2,$connect2)后面加一行 echo mysql_error();die(); 看看出什么错,再改正再调试就行了 >>详细
相关问题:php与mysql配置时候再php.ini里找不到没有extensio...
答:以下是对于添加extension=php_mysqli.dll这一扩展的说明: 在配置php5时要使用mysql作为数据库,很多人都认为只要在php.ini中添extension=php_mysql.dll;指令即可,不清楚为什么很多文章都推荐还要添加extension=php_mysqli.dll;指令。 只要查看... >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
