PEAR的DB库使用规则
- 格式:pdf
- 大小:284.37 KB
- 文档页数:6
关于数据库的使⽤规范(摘抄整理)⼀.数据库环境:1.开发环境(dev)开发可读写,可修改表结构。
开发⼈员可以修改表结构,可以随意修改其中的数据但是需要保证不影响其他开发同事。
2. 测试环境(test)开发可读写,开发⼈员可以通过⼯具修改表结构。
3.线上环境(production)开发⼈员不允许直接在⽣产环境进⾏数据库操作,如果需要操作必须找DBA进⾏操作并进⾏相应记录,禁⽌进⾏压⼒测试。
⼆.命名规范1.基本命名规则使⽤有意义的英⽂词汇,词汇中间以下划线分隔。
(不要⽤拼⾳)只能使⽤英⽂字母,数字,下划线,并以英⽂字母开头。
库、表、字段全部采⽤⼩写,不要使⽤驼峰式命名。
避免⽤ORACLE、MySQL的保留字,如desc,关键字如index。
命名禁⽌超过32个字符,须见名之意,建议使⽤名词不是动词数据库,数据表⼀律使⽤前缀临时库、表名必须以tmp为前缀,并以⽇期为后缀备份库、表必须以bak为前缀,并以⽇期为后缀2.为什么库、表、字段全部采⽤⼩写?在 MySQL 中,数据库和表对就于那些⽬录下的⽬录和⽂件。
因⽽,操作系统的敏感性决定数据库和表命名的⼤⼩写敏感。
Windows下是不区分⼤⼩写的。
Linux下⼤⼩写规则数据库名与表名是严格区分⼤⼩写的;表的别名是严格区分⼤⼩写的;别名与列的别名在所有的情况下均是忽略⼤⼩写的;变量名也是严格区分⼤⼩写的;如果已经设置了驼峰式的命名如何解决?需要在MySQL的配置⽂件my.ini中增加 lower_case_table_names = 1即可。
3.表命名: 同⼀个模块的表尽可能使⽤相同的前缀,表名称尽可能表达含义。
所有⽇志表均以 log_ 开头4.字段命名表达其实际含义的英⽂单词或简写。
布尔意义的字段以is_作为前缀,后接动词过去分词。
各表之间相同意义的字段应同名。
各表之间相同意义的字段,以去掉模块前缀的表名_字段名命名。
外键字段⽤表名_字段名表⽰其关联关系。
表的主键⼀般都约定成为id,⾃增类型,是别的表的外键均使⽤xxx_id的⽅式来表明。
leveldb 原理LevelDB是一个开源的键值存储引擎,由Google开发并维护。
它采用了LSM树(Log Structured Merge tree)的数据结构,结合了内存和磁盘的存储方式,以提供高效的数据读写能力。
下面我们将分步骤来介绍LevelDB的原理。
1. 数据结构LevelDB的底层数据结构是LSM树。
与B树等数据结构相比,LSM 树在插入数据时只需要写一次磁盘,因此写性能更好。
LSM树将磁盘数据分为多层,每一层都是按照键值的大小排序的,数据从底层不断合并到上一层,最终形成一棵树形数据结构。
在查询数据时,LevelDB从顶层逐层向下搜索,直到找到对应的键值,或者搜到最后一层仍然没有找到。
2. 写入流程当应用程序向LevelDB中写入数据时,数据首先会被写入内存中。
如果内存中的数据量超过了设定的阈值,LevelDB就会触发一个内存写入磁盘的操作,也称为flush操作。
flush操作会将内存中的数据按照键值排序,并写入一个磁盘文件中。
这个文件就是一个LSM树的叶子层,数据按照键值排序,可以直接被查询。
在后续的写入流程中,LevelDB会维护一个内存池,将新写入的数据先写入内存池中,等到内存池中达到一定的数据量后,再写入到磁盘中。
这种方式可以减少写入磁盘的频率,提高写性能。
3. 读取流程当应用程序从LevelDB中读取数据时,LevelDB首先会从内存中的缓存中读取数据,如果内存中没有找到对应的键值,就会从LSM树的顶层开始进行查找。
如果某一层中找到对应的键值,就直接返回数据。
如果在一层中没有找到对应的键值,就会继续在下一层中进行查找。
如果在所有层中都没有找到对应的键值,就会返回未找到对应数据的信息。
4. 垃圾回收LevelDB会定期执行一次垃圾回收操作,删除已经过期的数据和废弃的文件,释放磁盘空间。
LevelDB将磁盘上的数据分为多个文件,在执行垃圾回收时,会遍历所有的文件,将过期的数据删除,并将空闲的空间合并成一个新的文件。
手把手教你pear库的db_dataobject类库安装从网上找了好多db_dataobject类库安装安装文件,但是自己总是不详细。
我经过一天的摸索,自己配置好了这个类库,把经验分享如下:首先我们要先安装上pear库,才能继续安装db_dataobject类库1、安装pear库步骤1)我的php版本是 5.2.0,我是直接解压,自己配置的php。
(环境是windows+apache2+mysql5),具体配置php的过程我就不说了,相信很多人都会了。
配置好了整个环境(windows+apache2+mysql5+php5+phpmyadmin 2.11.5)以后,在php的安装根目录里有go-pear.bat文件,这是一个批处理文件。
还有一个名字为PEAR的文件夹,里面有一个go- pear.phar文件。
注意:现在还没有安装pear库,所以整个PEAR文件夹里只有一个go-pear.phar文件。
以上我可能介绍的太罗嗦了,但是我这是一个手把手的教程,可以直接交给你怎么样一步一步安装。
我可是捣鼓了一天才搞定的。
2)安装开始了。
我们只需要双击php根目录下的go-pear.bat文件文件就可以。
我直接运行,出现选择system或local直接回车就行了。
按回车继续。
出现一下信息Below is a suggested file layout for your new PEAR installation. To change individual locations, type the number in front of the directory. Type 'all' to change all of then, or simply press Enter toaccept these locations.1. Installation prefix :D:\php2. Binaries directory : D:\php3. PHP code directory : D:\php\pear4. Documentation base directory : D:\php\pear \docs5. Data base directory : D:\php\pear \data6. Tests base directory : D:\php\pear \tests1-6, 'all' or Enter to continue:下面是这些设置的说明:Installation prefix 你安装PEAR的根目录。
db函数的使用方法DB函数是一种在数据库中使用的函数,它可以用来执行各种数据库操作,比如查询、插入、更新和删除数据等。
在本文中,我们将详细介绍DB函数的使用方法,希望能帮助大家更好地理解和应用这一功能。
首先,我们需要了解DB函数的基本语法和参数。
DB函数的基本语法如下:```。
=DB(数据库操作, 数据表, 条件, 返回字段)。
```。
其中,数据库操作是指要进行的数据库操作,比如SELECT、INSERT、UPDATE和DELETE等;数据表是指要操作的数据表名称;条件是指操作的条件,比如WHERE子句中的条件;返回字段是指要返回的字段,可以是单个字段,也可以是多个字段。
接下来,我们将详细介绍DB函数的各种数据库操作及其使用方法。
1. 查询数据。
要查询数据,我们可以使用DB函数的SELECT操作。
比如,要查询数据表中的所有字段,可以使用如下语法:```。
=DB("SELECT", "表名", "", "")。
```。
这样就可以查询出数据表中的所有字段。
如果要查询特定条件下的数据,可以在条件参数中添加条件,比如:```。
=DB("SELECT", "表名", "字段1=值1 AND 字段2=值2", "字段1, 字段2")。
```。
这样就可以查询出满足条件的数据表中的字段1和字段2。
2. 插入数据。
要插入数据,可以使用DB函数的INSERT操作。
比如,要向数据表中插入一条新数据,可以使用如下语法:```。
=DB("INSERT", "表名", "字段1, 字段2", "值1, 值2")。
```。
这样就可以向数据表中插入字段1和字段2对应的值。
3. 更新数据。
要更新数据,可以使用DB函数的UPDATE操作。
leveldb基本操作Leveldb是一个高性能的键值存储库,由Google开发并广泛用于其各种项目中。
它提供了快速、高效的数据存储和检索能力,适用于各种应用场景。
本文将详细介绍Leveldb的基本操作,以帮助读者快速上手和应用。
1. 安装Leveldb首先,我们需要在本地环境中安装Leveldb。
Leveldb支持多种操作系统,包括Linux、Windows和Mac OS。
安装时,需要下载相应平台的Leveldb 库文件,并将其配置到开发环境中。
2. 创建和打开数据库a. 创建数据库使用Leveldb的API,我们可以创建一个新的数据库。
在创建数据库时,需要指定数据库所在的路径。
cppleveldb::DB* db;leveldb::Options options;options.create_if_missing = true;leveldb::Status status = leveldb::DB::Open(options,"/path/to/database", &db);b. 打开数据库如果数据库已经存在,我们可以通过打开来访问它。
在打开数据库时,我们同样需要指定数据库所在的路径。
cppleveldb::DB* db;leveldb::Options options;leveldb::Status status = leveldb::DB::Open(options,"/path/to/database", &db);3. 数据存储和检索a. 存储数据使用`Put`函数可以将键值对存储到数据库中。
键和值都是`std::string`类型的。
cppstd::string key = "mykey";std::string value = "myvalue";leveldb::Status status = db->Put(leveldb::WriteOptions(), key, value);b. 检索数据使用`Get`函数可以根据键来检索对应的值。
EDB数据库操作手册
EDB(EnterpriseDB)数据库操作手册是一个详细的指南,用于指导用户进行EDB数据库的安装、配置、使用和管理。
以下是操作手册的主要内容:
1.引言:介绍EDB数据库的背景、特点和优势,以及操作手册的目标和结
构。
2.安装与配置:详细描述如何安装和配置EDB数据库,包括硬件和软件要
求、安装步骤、配置选项等。
3.用户管理:介绍如何创建和管理EDB数据库的用户账户,包括用户账号
的创建、权限设置、角色管理等。
4.数据库管理:介绍如何创建、备份、恢复和删除EDB数据库,以及如何
进行数据库性能优化和监控。
5.数据操作:介绍如何使用SQL语言进行数据查询、插入、更新和删除操作,
以及如何使用EDB提供的各种数据工具和界面。
6.高级功能:介绍EDB数据库的一些高级功能,如分布式数据库、数据复
制、大数据处理等。
7.故障排除和维护:提供一些常见的故障排除方法和维护技巧,以帮助用户
解决使用EDB数据库过程中遇到的问题。
8.附录:包含操作手册中引用的所有命令、工具和文件的详细说明。
操作手册通常以文本或电子格式提供,可以在EDB官方网站上下载或通过其他渠道获取。
用户可以根据自己的需求和实际情况参考操作手册,以更好地使用和管理EDB数据库。
安装配置pear、phpunit、Selenium(netbeans下开发yii框架项目)首先,yii的测试有两个:一是单元测试;二是功能测试。
具体详情介绍请看相关文档介绍。
/doc/guide/1.1/zh_cn/test.overviewYii测试要用到两个插件:一是phpunit;二是Selenium Remote Control。
所以要先安装这两个插件。
先说明,我们的开发环境使用的是wamp环境:wampserver2.2e-php5.4.3-httpd2.2.22-mysql5.5.24首先安装phpunit,我们选择使用PEAR来安装,如果大家还没有安装PEAR,现在也可以安装。
安装PEAR1、假设我的php环境在:D:\wamp\bin\php\php5.4.3下,那么我们先在D:\wamp|目录下新建一个文件夹pear,然后,打开这个网址(点击这里),将下载的文件go-pear.phar 保存到刚新建的pear文件夹里。
2、在这之前首先确保你php环境已经加入到了系统的环境变量path中,接着运行cmd,打开命令行窗口,cd到php的安装目录(如我的是:D:\wamp\bin\php\php5.4.3,就->cd D:\wamp\bin\php\php5.4.3),接着执行命令:>php go-pear.phar输入system或直接回车,接下来是让您输入“yes”以确认操作,接下来一直回车就行了3、最后您在命令行中输入pear,出结果:证明pear安装成功,注意,安装中最后将提示您是否将pear的相关配置写到php.ini中,如果您没有足够的权限,命令行将帮助您打开php.ini(当然是经过您在命令行中确认)等待您手动输入配置信息,在命令行中已经给出了具体的配置内容,您只需要复制粘贴就可以。
4、这时,我们最好是更新一下pear,保证您安装的是最新版本的。
使用命令:->pear upgrade-all这里,需要保证网络畅通,如果您看更新过程中看到错误信息,多试几次至此,pear已经安装并更新到最新版本5、在D:\wamp\pear文件夹里,会生成一个名为“PEAR_ENV.reg”的注册表文件,双击运行即可。
你可能已经是个PHP的老手了,写了很多非常棒的代码。
但是,如果你现在要把它们加入到你现在的项目中去,是否有些吃力?你的朋友想使用你的代码作为他的项目中的一个模块,但是你发现你们使用了截然不同的编码风格,让他适应,甚至不如重写一个!请跟我来,使用PEAR标准编写你的PHP程序吧,你的程序将会拥有更大的活力,你的程序和代码将会很方便地和其他高手的代码融合在一起,PEAR就象CPAN对于PERL一样,会让PHP产生更高的能量。
什么是PEARPEAR是PHP扩展与应用库(the PHP Extension and Application Repository)的缩写。
它是一个PHP扩展及应用的一个代码仓库,简单地说,PEAR就是PHP的CPAN。
为什么要使用PEAR?PHP是一个非常优秀的脚本语言,简洁、高效,随着4.0的发布,越来越多的人使用它来进行动态网站的开发,可以说,PHP已经成为最优秀的INTERNET开发语言之一,尤其对于那些需要能够快速、高效地开发中小规模的商业应用的网站开发人员,PHP是其首选的语言。
但是随着PHP的应用的不断增多,对于这些应用缺乏统一的标准和有效的管理,因此,PHP社区很难象PERL社区的人们那样方便的共享彼此的代码和应用,因为PHP缺乏象CPAN那样的统一的代码库来分类管理应用的代码模块(熟悉PERL的人都知道,CPAN是一个巨大的PERL的扩展模块仓库,编写的应用模块可以放在CPAN下面的适当的分类目录下面,其他的人可以很方便地复用,当然,你编写应用模块时候也需要遵守其中的准则。
)为此,PEAR就应运而生了,并且从4.04开始,随着PHP核心一起被分发。
PEAR能给我带来什么好处?1.如前所述,PEAR按照一定的分类来管理PEAR应用代码库,你的PEAR代码可以组织到其中适当的目录中,其他的人可以方便地检索并分享到你的成果。
2.PEAR不仅仅是一个代码仓库,它同时也是一个标准,使用这个标准来书写你的PHP代码,将会增强你的程序的可读性,复用性,减少出错的几率。
leveldb的使用LevelDB是一个高效的键值存储库,它被谷歌开发用于数据存储和读取。
它提供了一种简单和易于使用的方式,让您将数据保存在磁盘或内存中,并让您能够快速地访问这些数据。
在本文中,我将向您介绍有关如何使用LevelDB的基本步骤。
步骤1:下载和安装LevelDB在开始使用LevelDB之前,您需要根据您的计算机环境下载并安装它。
您可以从官方网站或各种其他网站上下载最新的LevelDB库。
下载完成后,您需要解压它,接着编译它并安装它。
如果您正在使用Unix或Linux操作系统,则可以使用以下命令来编译和安装LevelDB:$ make && make install如果您正在使用Windows操作系统,则需要使用特殊的编译步骤来生成LevelDB库。
步骤2:打开LevelDB数据库一旦您已经成功安装了LevelDB,您可以开始构建一个LevelDB数据库。
您需要设置一个存储目录来存储您的数据。
在LevelDB中,您可以使用以下代码打开一个新的数据库:#include “include/leveldb/db.h”using namespace leveldb;DB* db;Options options;options.create_if_missing = true;Status status = DB::Open(options, “/path/to/db”, &db);在这里,Options是一个选项结构,其中create_if_missing字段指定如果不存在则创建新的数据库。
在以上代码段中,“/path/to/db”将是LevelDB数据库的路径。
如果您已经有一个现有的数据库,则可以改用Open()命令来导入现有的数据库。
步骤3:向LevelDB数据库中存储数据一旦您成功打开了一个数据库,您可以开始向其中存储数据。
以下是向数据库中添加数据的示例代码:std::string key = “hello”;std::string value = “world”;Status status = db->Put(WriteOptions(), key, value);在这里,Put()函数将数据作为键值对添加到您的LevelDB数据库中。
PEAR的DB库使用
在PHP网站开发中,由于其支持各种数据库引擎,如Mysql,Mssql,Pgsql,sqlite 等,并对各种数据库系统都提供了不同的函数作为接口,给PHP网站开发者带来很多便利,但同时也带来了平台移植性的问题,随着底层数据库的改变,PHP代码也必须改变。
对于这个问题,有各种解决方法,如使用PHP ADODB类,PHP PEAR DB类或者自行编写PHP DB类,将各种数据库的函数操作聚合在一起等,今天和大家分享如何安装使用PHP PEAR DB类,以实现不同数据库的访问功能。
准备工作
1、在使用PHP PEAR DB类访问数据库之前,需要安装PHP PEAR,然后通过PEAR来下载安装DB类,即。
pear install db
安装好后,在PEAR里边多出来几个文件了:
2、根据需要安装相关数据库,比如Mysql,Mssql,Pgsql,Sqlite等,同时在PHP.INI中找到Dynamic Extensions,引入对应数据的DLL文件,并重启Apache。
<?
require_once("DB.php"); $userName='root'; $password='123456'; $hostName='localhost'; $dbName='test';
$dsn="mysql://$userName:$password@$hostName/$dbName"; $dbCon= DB::connect($dsn);
if(DB::isError($dbCon)){
die($dbCon->getMessage());
}
$sql="CREATE TABLE leapsoul (".
"`id` INT( 11 ) UNSIGNED NOT NULL ,".
"`name` VARCHAR( 30 ) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL ,".
"`age` INT( 2 ) NOT NULL ,".
"`birthday` VARCHAR( 30 ) CHARACTER SET gbk COLLATE
gbk_chinese_ci NOT NULL ,".
"`sex` INT( 1 ) NOT NULL ,".
"PRIMARY KEY ( `id` )".
") ENGINE = MYISAM CHARACTER SET gbk COLLATE gbk_chinese_ci"; $result=$dbCon->query($sql);
if(DB::isError($result)){
die($result->getMessage());
}
$sql="insert into leapsoul(id,name,age,birthday,sex) values(1,'leapsoul',1,'2009-05-13',1),(2,'leapsoul',1,'20 09-05-13',1),(3,'leapsoul',1,'2009-05-13',1)";
$result=$dbCon->query($sql);
if(DB::isError($result)){
die($result->getMessage());
}
$dbCon->setFetchMode(DB_FETCHMODE_ASSOC);
$sql="select * from leapsoul";
$result=$dbCon->query($sql);
if(DB::isError($result)){
die($result->getMessage());
}
for($i=0;$i<$result->numRows();$i++)
{
$info=&$result->fetchRow();
echo"name:".$info['name'];
echo"birthday:".$info['birthday']."<br>"; }
$result->free();
$dbCon->disconnect();
}
运行的时候,出现了错误。
后来才发现,即时在PHP里边安装了DB类库,但是,仍然需要把DB类库拷贝到项目中去,同时还要下载一个文件DB.php,把这个文件也拷贝到项目中。
运行程序后有:
注释:
第2行:引入PHP PEAR DB 类库
第4-7行:设定访问的数据库、登录用户名、密码、主机
第9-11行:设定DSN参数,并进行数据库链接,我连接的数据库为Mysql 知识点:从pear/DB.php的parseDSN函数中我们可以看到$dsn参数有以下几种格式
phptype://username:password@protocol+hostspec:110//usr/db _file.db?mode=0644
phptype://username:password@hostspec/database_name phptype://username:password@hostspec
phptype://username@hostspec
phptype://hostspec/database
phptype://hostspec
phptype(dbsyntax)
phptype
其中
phptype: 代表使用的数据库,如Mysql,Mssql,Pgsql,Sqlite等dbsyntax: Database used with regards to SQL syntax etc.(没看明白)
protocol: 使用的协议,比如TCP等
hostspec: 主机,比如数据库存放在远程服务器上,可指定端口(hostname[:port])
database: 数据库服务器上的数据库名
username: 登录的用户名
password: 登录的密码
第13-15行:错误处理,如数据库链接出错,则报错。
第17-38行:执行数据库表创建并插入测试数据。
第40行:setFetchMode函数是PHP PEAR DB让用户设定返回记录集是数字索引数组还是关联数组或者对象,此处我设定为关联数组的形式。
默认
DB_FETCHMODE_ORDERED模式,其他两种模式为DB_FETCHMODE_ASSOC与DB_FETCHMODE_OBJECT
第49-55行:输出记录集
第56-58行:释放记录集并关闭连接
PHP PEAR DB类部分函数说明:更多函数可参考pear/db.php和
pear/db/common.php
connect():数据库链接函数
query():SQL语句执行函数
execute():SQL语句执行函数,与query()函数使用方式略有不同,具体可参考pear/db/common.php文件
setFetchMode():设定返回记录集是数字索引数组还是关联数组或者对象numRows():返回记录集有多少行
numCols():返回记录集有多少列
free():释放记录集
disconnect():关闭数据库链接
affectedRows():操作影响的记录行数
isManip():判断一个查询是数据处理还是数据定义操作
平台移植说明:
理想情况下,移植到其他类型的数据库平台时,只需要修改PEAR DB中的DSN字符串参数即可,但是对于一些特定数据库特有的查询,当移植到其他数据库平台时只能进行修改了。
其他:
DB目录下存了所有PHP PEAR DB支持的相关数据库,有兴趣的朋友可看看。
通过上述代码实例,我们就可以利用PHP PEAR DB类来实现不同数据库的访问功能。
注:PHP网站开发教程版权所有,转载时请以链接形式注明原始出处及本声明,谢谢。