模型

一、使用数据库
  function dbAction()
  {
    require_once 'Rong/Db.php';
    $db =  Rong_Db::factory( "Mysql", array(
        "host" => "localhost" ,
        "username" => "root" ,
        "password" => "123456",
        "dbname"  => "rong_db" ,
        "charset" => "utf8" , 
		"port" => 3306
    ));
    $db->query( "insert into article( title ,content) values('title mysql','content')" ); //插入数据
    $rows = $db->fetchAll( "select * from article "); //返回一个二维数组
 } 
连接到Sqlite数据库
require_once 'Rong/Db.php';
$db =  Rong_Db::factory( "Sqlite", array(
	"filename" => "/test.db" ,
	"mode" => 0666 ,
	 
));
Rong_Db::factory( $adapter , $config )
$adapter : 数据库适配器,目前只支持 Mysql 和 Mysqli
$config : 数据库的配置,是一个二维数组
二、新建一个模型
<?php
/**
* file name: /application/models/ArticleModel.php
*/
require_once 'Rong/Db/Model.php';
class ArticleModel extends Rong_Db_Model 
{
	public $_name = "article";
	public function __construct( )
	{
		parent::__construct();
	}
	public function insert( $title, $content )
	{
		$data = array(
			"title" => $title ,
			"content"	=> $content 
		);
		return parent::insert( $data ); // insert()返回last_insert_id
	}
}
?>
 
模型的文件名为ArticleModel,是"Rong_Db_Model"的子类。 它的 $_name 属性是表名。
插入数据的形式为:
$data = array(
    "字段名1" => $值1 ,
    "字段名2"	=> $值2 ,
    ......
);
return parent::insert( $data );  //返回最后插入的id
   
三、在控制器中使用这个模型
public function testModelAction( )
{
    require_once 'Rong/Db.php';
    $db =  Rong_Db::factory( "Mysql", array(
        "host" => "localhost" ,
        "username" => "root" ,
        "password" => "123456",
        "dbname"  => "rong_db" ,
        "charset" => "utf8"
    ));
    
    require_once 'Rong/Db/Model.php';
    Rong_Db_Model::setDb( $db );
    //print_r( $this->import->model("ArticleModel" ) );
    //print_r( $this->import->model( "sub/Sub" ) );
    $articleModel = $this->import->model("ArticleModel" );
    //echo $lastInsertId = $articleModel->insert( "model title" , "model content" );
    //echo $affectedRows= $articleModel->update( array("title"=>"new title") , "id=12" );
    echo $affectedRows = $articleModel->delete( "id=12" );
}
  

Rong_Db_Model::setDb( $db )
确定模型使用的是哪个 $db 对象。
$articleModel = $this->import->model("ArticleModel" );
实例化一个数据库模型,也就是我们刚才建立的 ArticleModel.php
四、基本模型方法

Rong_Db_Model::setModelsDir( $modelDir )
设置模型的路径。$modelDir为放置模型的新路径
Rong_Db_Model::setName( $newName )
设置数据模型的新表名。
Rong_Db_Model::getName( )
取得当前的表名。
Rong_Db_Model::insert( $data )
插入数据。
Rong_Db_Model::update( $data , $where )
$data 是一个"字段名=>值"形式的一维数组,$where 是sql语句中$where 之后的句子。
Rong_Db_Model::delete( $where )
按$where中的条件删除数据。
Rong_Db_Model::fetchRow( $where )
根据where语名取得一行数据。
Rong_Db_Model::escape( $str )
过滤特殊符号,例如单引号。
$Rong_Db_Model->db->numFields()
返回结果集的字段数
$Rong_Db_Model->db->numRows()
返回结果集的行数。
Rong_Db_Model::fetchCount( $where )
取得行数