6. 既然你选择了不使用关系型数据库(NO-SQL),那么你就应该用自己认为合适的方法存储数据。
NO-SQL并没有一个通用的查询、修改、删除的方法,你需要根据你的程序的需要来设计。通过fopen、fread、fwrite、file_get_contents、file_put_contents来读写数据。通过不同的文件名保存不同的数据。
你需要自己设计你需要的一切,查询、插入、分页、索引……因为NO-SQL意味着没有现成的数据库引擎来帮你。
7. 你可以把你的文本数据库设计得简单,或者复杂,这都看你自己。
比如,老虎的聊天室就工作在文本数据库下。我使用chat/*.php来存储每个聊天室的发言,*就是聊天室的名字(经过urlencode()编码)。
当要写入数据时,程序会自动生成一个合法的php数据字符串,比如
$spdata[]=array('2012-1-10 22:11:33','测试人员','我来了。');
并把它追加写到指定聊天室的.php文件末尾。
当要读取时,我就include那个php,于是就取得$spdata数组,然后就可以显示出来了。
但这种方法很可能不适合你的程序,比如它内存占用随发言增多而增大,修改和删除极不方便等等,所以你必须自己设计。
9. 使用SQLite3也就是说你在使用PDO(只有PDO才支持SQLite3,即使是sqlite3_open()系列函数也只支持SQLite2.9)。
SQLite和Mysql的PDO操作的唯一区别是连接字符串:
$db=new pdo('sqlite:db.sqlite3'); //打开当前目录下的db.sqlite3数据库(如果不存在,部分版本会自动创建一个,部分版本不会。所以你可以先创建一个名为db.sqlite3的0B文件,然后再打开)
接下来的所有操作都和Mysql的相同。我相信你可以找到一大堆PDO操作Mysql的教程。
10. MYSQL与SQLite的某些SQL语句不同,比如建表语句。如果遇到问题,可以用“sqlite *”为关键字来搜索,*是语句的名字。