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();

第一种是我用到的,还有一种下次再讲.

No Responses to “Joomla数据库操作-JTable”

Trackbacks/Pingbacks

  1. Joomla数据库操作-JFactory::getDBO-向东而立 United States United States WordPress WordPress 3.3.2 Unknow Os Unknow Os - [...] 接着上面的一篇Joomla数据库操作-JTable,接下来说说JFactory::getDBO [...]

Leave a Reply