请选择 进入手机版 | 继续访问电脑版

Discuz站长论坛

 找回密码
 立即注册
查看: 1321|回复: 1

DedeCMS开发之数据库相关操作类

[复制链接]
发表于 2017-4-26 01:07:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
系统会自动载入 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'参数,否则会出错


$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相关函数进行数据库操作
在非不得已的情况,项目中一般不使用这个变量。

点评

谢谢分享  发表于 2018-3-22 15:41
最近访问 头像模式 列表模式
回复 马甲回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|网站地图|小黑屋|手机浏览|简洁浏览|展会网|Discuz站长论坛  

GMT+8, 2018-8-19 11:27 , Processed in 0.825373 second(s), 21 queries , Memcache On.

Powered by Discuz! X3.2 Designed by AiLab.CN

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表