首页 » 我的php » 正文

关于PHP的数据层类库NotORM的使用

介绍和概念 :

它是一个 PHP 库,用来简化和数据库的交互。最有特色的功能是处理表关联关系非常简单。另外 NotORM 的性能非常的高,甚至高过内置的驱动。(个人观点:不一定,但是对于新手来说。NotORM拼凑的sql语句性能还是比手写的要高)

提示:

对于这类库。没啥好高深的,就是拼凑sql语句。只不过人家老外拼的比较牛逼。

下载地址:

http://www.notorm.com/  请大家自行下载

使用限制条件:

1、至少PHP 5.1 以上。这个没的说。如果谁还在用PHP 4.x 那就没意思了。版本太美,不敢看

2、需要开启PDO支持。啥是PDO?

PDO是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理,什么 php_mysql.dll、php_pgsql.dll、php_mssql.dll、php_sqlite.dll等等扩展来连接MySQL、PostgreSQL、MS SQL Server、SQLite,同样的,我们必须借助 ADOdb、PEAR::DB、PHPlib::DB之类的数据库抽象类来帮助我们,无比烦琐和低效,毕竟,php代码的效率怎么能够我们直接用C/C++写的扩展斜率高捏?所以嘛,PDO的出现是必然的,大家要平静学习的心态去接受使用,也许你会发现能够减少你不少功夫哦。

说白了。PHP的作者在以前水平还不够高。还没想到这么干。并不是PHP的知识点特别多

测试一下:

首先我们假设有两张表

1、新闻表news ,字段如下

 id  int  主键

 title varchar(50) 标题

 news_classid 新闻类别ID。 外键,这个很重要。后面要演示 关联

2、新闻类别表news_class  

  id  int 主键

  classname 类名

开始写代码 

include(“NotORM.php”);  //不要问我这句话哪来的。你下载好后,必然会有这个文件

$pdo = new PDO(“mysql:host=localhost;dbname=myweb”,”root”,”123″);  //不要问我为什么我会这么写。看php官方文档即可。不要深究

//注意PDO是 php的PDO实现,自带的。和NotORM半毛钱都没关系


$structure = new NotORM_Structure_Convention(
    $primary = ‘id’,  //这里告诉notorm 我们的主键都是id 这种英文单词
    $foreign = ‘%sid’,  //同理,外键都是 外表名+id    这个很重要,否则notorm拼接sql的时候会拼错。
    $table = ‘%s’,
    $prefix = ”
);
$db=new NotORM($pdo,$structure); //初始化
   
foreach($db->news() as $n)
{
   echo $n->news[“title”];  //打印标题
 echo $n->news_class[“class_name”]; //打印和 news_class表关联后的 类别名
}


有几个注意的地方:

1、notorm对字段名的要求很高。 外键不要乱写。  譬如news_class是类别表。 那么news表里的类别字段必须是 news_classid。否则一切玩完


2、$db->news() ;   就代表 执行了 select * from news 这个sql语句


3、 echo $db->news();  可以查看 notorm到底拼凑了 一个什么样的sql 


其他的。大家看官方文档吧。 简单的很。


这里也强烈推荐大家使用。

本文共 3 个回复

  • 匿名 2015/11/19 13:34

    卡密

  • maxie 2017/07/05 14:47

    讲的很通俗易懂,我喜欢这种风格...不墨迹! 👿

发表评论