织梦DedeCMS二次开发必用之数据库类操作(下)

  接织梦DedeCMS二次开发必用之数据库类操作(上)内容
  运行test.php看到显示以下的内容

查询dede_test表中的所有记录:显示结果:id = 1 ,name = 测试名字1id = 2 ,name = 这是第二个id = 3 ,name = 第三个喽id = 4 ,name = 第四个

  这个说明我们已经成功将表dede_test中的数据输出,当然主要是执行了那个"SELECT * FROM dede_test",这是一个最简单的sql查询语句,当然也能够用到order by这些排序或者条件去查询,详细可以参考sql相关内容。

  同时这里需要说明的是这里除了用$dsql->GetArray('me')来获取内容到数组,还可以用$dsql->GetObject("me")获取内容到对象,不过调用方法有些不同,主要这里通过$dbobj->fieldname来调用查询出来的数据:

while($dbobj = $dsql->GetObject('me')) {       echo "id = {$dbobj->id} ,name = {$dbobj->name}<br />"; }

  4.插入删除操作数据库

  上面我们介绍了如何用dsql来查询数据,主要有获取单条记录和获取多条记录2种,接下来我们来了解下使用dsql其他特性来为我们的test.php加入添加内容和删除内容的功能。先来了解下插入数据库的操作,我们先做一个表单,这个表单用于提交数据name的。表单代码如下:

 <hr />用于提交数据的表单:<br /><form action="test.php" type="post">    <input type="hidden" name="dopost" value="save">    名称:<input type="text" name="name" value="">    <input name="提交" type="submit" value="提交"></form>

  这里我们用了一个隐藏域dopost来存放操作方法,输入框name用来存放输入数据,然后传递给当前页面,再进行处理,这时候我们需要在test.php中加入部分的表单处理操作:

  这里主要是一个INSERT INTO 语句,然后通过$dsql的ExecuteNoneQuery方法来执行这个操作,并且获取插入数据最后一个id再将其传递给下一个页面以便高亮显示。我们可以在编辑框中插入一条数据来测试下,看看插入数据后的返回结果:

 

  其实删除的操作也是如此,我们只需要稍微做个修改就可以了,增加一个dopost操作为del的判断,然后在显示数据后面增加一个超链接,将id以get方式进行传递.并最后进行处理。下面是我们修改循环查询输出的部分内容,有如下修改:
 

while($dbobj = $dsql->GetObject('me')){    if($id==$dbobj->id){      //如果传递的id值和查询值相同,则高亮显示最后一条插入记录        echo "<font color='red'>id = {$dbobj->id} ,name = {$dbobj->name}</font>         <a href='test.php?dopost=del&id={$dbobj->id}'>[删除]</a>            <br />";//这里增加了一个删除的超链接    }else{        echo "id = {$dbobj->id} ,name = {$dbobj->name}         <a href='test.php?dopost=del&id={$dbobj->id}'>[删除]</a><br />";    }}//下面是del这个post的判断:empty($dopost)? "" : $dopost;if($dopost == "save"){  //如果执行插入操作  $sql = "INSERT INTO `dede_test` (`name`) VALUES ('{$name}')";  $dsql->ExecuteNoneQuery($sql);  $lastInsertID = $dsql->GetLastID();  ShowMsg("成功增加一条记录内容!","test.php?id={$lastInsertID}");  exit();}elseif($dopost == "del"){  //如果dopost为del,则删除数据  $id = isset($id) && is_numeric($id) ? $id : 0;  $sql = "DELETE FROM `dede_test` WHERE (`id`='{$id}')";  $dsql->ExecuteNoneQuery($sql);  ShowMsg("成功删除一条记录内容!","test.php");  exit();}
 

支付宝扫码打赏 微信扫码打赏

如果本文对你有帮助,欢迎打赏本站

喜欢 ()or分享
    匿名评论
  • 评论
人参与,条评论