你现在的位置:首页 > PHP网站建设知识库 > Joomla > 正文

Joomla数据库操作-JTable

Joomla中数据库操作主要分为两类,第一种是基于JTable的,第二种则是基于 JFactory::getDBO() 的,两者各有各的特点
这里我主要讲一下第一种
要使用 JTable,首先在你的 Joomla根目录下的 components 文件夹中创建一个名为 com_db 的文件夹,
然后,在数据库中创建表 jos_db
CREATE TABLE `jos_db` (
`id` INT( 2 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`name` VARCHAR( 20 ) NOT NULL ,
`comment` VARCHAR( 20 ) NOT NULL
)
然后,在其中创建名为 db.php 的文件以及名为 tables 的文件夹,在里面创建名为 db.php的文件(文件名为表名)。
然后在里面插入以下代码
<?php
defined(‘_JEXEC’) or die();
class TableDb extends JTable{
var $id;
var $name ;
var $comment;
function __construct(&$db)
{
parent::__construct( ‘#__db’, ‘id’, $db );
}
}
?>
其中类名必须以 Table+文件名组成,否则等下会提示找不到文件,还要创建tables目录。在类里你必须常见数据库表中相同的字段变量。构造函数中第一个参数代表所属的表名称。第二个则是下一步查询所需的关键字,
然后,在刚才com_db 的文件夹中的db.php中继续增加代码。
先要包含该JTable类的文件 JTable::addIncludePath(JPATH_COMPONENT.DS.’tables’);
然后获得其一个实例 $row=& JTable::getINstance(‘db’,'Table’);
a)查询
例如查询一个 id 为 4的记录
$id=4;
$row->load($id);
echo $row->name;
echo $row->id;
echo $row->comment;
b)插入
要插入一条记录,你得先给它赋值,比如赋值为:
$row->name=”insert”;
$row->comment=”insert”;
然后调用store()函数 $row->store();
第一种是我用到的,还有一种下次再讲.