我们常用mysql作为PHP网站的数据库,它有查询速度快,语法简单,安全性高等等有点。此用之于大型项目更适合不过,然则有时候我们需要开发像网站留言本、一次性投票程序等等只需要简单记录数据的web程序,再用mysql就有点“杀鸡用宰牛刀”,显得臃肿了。人们希望PHP也可以像asp的access数据库一样,即插即用。由此,类似txtsql的软件就应运而生。
空口无凭,居正给大家找了一段txt数据库的优缺点分析:
优点:
跨平台,比任何数据库都跨平台;免费,说的是不用再去卖数据库空间;可以像ASP+ACCESS一样管理文件,比如给别人提供程序,或在自己机子调试然后要传到虚拟空间,或换了一个空间要全部移走,就不用phpMyAdmin导出SQL文件再导入;不用出现乱码,MySQL出现乱码的情况应该都遇到过,当然那是有办法解决的,但用文本数据库是不会出现乱码的
缺点:
速度不如专业的数据库,也不支持SQL语句,为什么使用文本数据库:
新鲜,好玩,挑战性,想尝试一下,拓展思路,
除了大型BBS多用户统计多用户BLOG外,很多程序我们都可以生成静态来解决速度的问题,静态网页的速度最快,而且被搜索引擎收录的机会更大了。
txt数据库凡三种,为txtsql、txtDB API、txtdb,居正试用了一下发现txtsql最为好用,于是就推荐给大家。
下载地址(网盘):https://pan.baidu.com/s/1c1NOt8G
(SourceForge原地址):https://sourceforge.net/projects/txtsql/
解压此zip包,里面有一个docs的帮助文章文件夹,还有examples放了两个官方的示例程序。
txtsql的中文资料互联网上很少,这里给大家推荐仅有的几篇文章:
txtsql安装手册中文版:https://github.com/erasin/notes/blob/master/php/txtsql.md
介绍三种文本数据库:txtsql、txtDB API、txtdb:http://www.aslibra.com/blog/read.php?710
好了,现在开始正文(某淀粉:你已经扯蛋800字了…)
关于txtsql的安装方法,上面的文章已经讲述的很详细了。如果你不理解就把文档全部看一遍,必要时也可以用谷歌翻译呀~
居正这里建议大家对于表中数据的操作全部使用query函数,你可以直接使用mysql的命令进行增删改查,不过有一些细节与原版的命令不一样,需要留神。
下面我简单讲解一下:
include 'txtSQL.class.php';//我txtdb的class文件与此测试程序在同一目录下 $db=new txtSQL('./data'); $db->connect('root', '') or die('cannot connect'); $db->selectDb('default');//我创建的数据库名字叫default
下面的例子是创建一张表,表中的数据全部为int形式。注意我创建表的时候用createTable函数,这比query简单多了:
$db->createtable(array('table'=>'teach','columns'=>array('id'=>array('type'=>'int','auto_increment'=>1),'value'=>array('type'=>'int'),'speed'=>array('type'=>'int'))));
insert篇
先看看文档的介绍:
我往里面插入一条数据:
$db->query('insert into teach set (id = 1,value = 100,speed = 666)');
这里一定要注意,query函数中字段对空格有要求,比如当你想把ID设置为1时你必须输入”id = 1″而不是”id=1″,否则会找不到字段。而且,你要写”set (…)”而不是”set(…)”。这大概也是txtsql相比于mysql的不足之处吧。
然后我们写个查询语句,用var_dump输出全部内容:
$q=$db->query('select * from teach'); var_dump($q);
效果:
update篇
OK,现在讲一讲update命令需要注意的地方:
文档介绍:
这里要格外注意,txtsql的update语句中where是写在前面的!而且还是必须的项目!也就是说如果我们要更改所有的数据就必须加个类似”1 = 1″这样的语法。。。。
$db->query('update teach where 1 = 1 set (value = 99999,speed = 8888888)');
在这行代码中,我把1 = 1作为始终成立的条件以更改整张表中的所有数据。
dump出来看看效果:
已经成功修改了。
这里顺便提一下防注入,如果你用query函数,跟mysql一样防就行。
好吧,来总结一下,txtSQL对于小型程序来说很管用,但是还是有一些不方便的地方,总的来说非常不错。另外居正有空会把文档翻译成中文的来给大家参考。如果你在使用中遇到什么问题可以直接在下面留言,我会第一时间解答~
一条评论
这几天,参考了大侠的指导文章,把一个小留言板的数据库从mysql迁移到txtsql了,速度提升了近100倍。希望有机会继续讨教~