系统会自动载入 dedesql.class.php 文件,并用
$dsql = $db = new DedeSql(false);
进行初始化数据库连接,因此在工程所有文件中均不需要单独初始化这个类,可直接用 $dsql 或 $db 进行操作,为了防止错误,操作完后不必关闭数据库。
常用的方法:
1、执行一个非查询类型的SQL语句,如 insert 、create 、update 等
$rs = $db->ExecuteNoneQuery($sql);
返回值为是否执行成功。
2、执行一个非查询类型的SQL语句,并返回成功记录数
$rs = $db->ExecuteNoneQuery2($sql);
与上面相比,它返回的是影响的记录数,而不是布尔值
3、返回单个记录
$arr = $db->GetOne($sql);
$dsql 如果不带 limit ,系统会自动加上 limit 0,1
4、执行条件查询语句
$db->SetQuery($dsql);
$db->Execute();
while($arr = $db->GetArray())
{
}
可以简化为:
$db->Execute('me',$dsql);
while($arr = $db->GetArray())
{
}
'me' 为记录集游标,用于区分不同的查询,如:
$db->Execute('me',$dsql);
while($arr = $db->GetArray())
{
$db->Execute('2',$dsql2);
while($arr2 = $db->GetArray())
{
}
}
像这种情况必须指定一个值区分默认的'me'参数,否则会出错
代码实例:
<?php
$dsql->Execute('level1', "select * from function where parent_id=-1 and type='menu'");
while($row1=$dsql->GetArray('level1')){
if(!CheckPriv($row1['code']))continue;
echo "<h1 class=/"type/"><a href=/"".$row1['url']."/">".$row1['name']."</a></h1>/n";
echo "<div class=/"content/">/n<ul class=/"MM/">/n";
$dsql->Execute('level2', "select * from function where parent_id=".$row1['id']." and type='menu'");
while($row2=$dsql->GetArray('level2')){
if(!CheckPriv($row2['code']))continue;
echo "<li><a href=/"".$row2['url']."/" target=/"main/">".$row2['name']."</a></li>/n";
}
echo "</ul>/n</div>/n";
}
?>
$db->GetArray($rsid,$acctype) 参数
$rsid="me"
$acctype=MYSQL_ASSOC
在查询游标中读取数据还可以用
$db->GetObject($rsid="me");
返回的结果是用类结构表示的值。
5、获取上一个插入的自动递增主键id值
$db->GetLastID();
6、获得查询的总记录数
$db->GetTotalRow($rsid="me")
7、获得MySql的版本号
$db->GetVersion($isformat=true)
默认的情况下会转换成 x.xx 形式浮点数
8、析放某查询的资源
$db->FreeResult($rsid="me");
9、在数据库中是否存在某数据表
$db->IsTable($tbname)
10、重新选择要操作的数据库
$db->SelectDB($dbname);
11、获得数据库连接标识
$db->linkID
获得这个连接标识后,可以直接用mysql相关函数进行数据库操作
在非不得已的情况,项目中一般不使用这个变量。
此文由 网站目录_网站网址收录与提交入口 编辑,未经允许不得转载!: