返回顶部
首页 > 资讯 > 数据库 >iwebshop框架用到的几种常用sql处理
  • 359
分享到

iwebshop框架用到的几种常用sql处理

2024-04-02 19:04:59 359人浏览 薄情痞子
摘要

query 查询类标签(用于前端遍历)实例:{query:name=Goods}{$item['name']}<br/>{/query}本人实际开发中书写代码应用:<PHP &n

query 查询类标签(用于前端遍历)

实例:

{query:name=Goods}
{$item['name']}<br/>
{/query}

本人实际开发中书写代码应用

<PHP  // 下面代码是放在html页面的
{query:name=user fields=username where=id eq $user_id}
      {$item['username']}
      {/query}的购物清单</td>
 ?>


分页:

{set:$page=IReq::get('page')==null?1:IReq::get('page');}//定义分页变量
{query:name=goods page=$page pagesize=5}
{$key}:{$item['name']}<br/>
{/query}
{$query->getPageBar()} //调用分页方法


数据库读取和写入:


IQuery类:

IQuery 提供了很丰富的属性和功能,通过简单的属性配置,就可以实现很多的sql 查询功能,比如我们要查询商
品表(goods)里面的id=10 的商品,则:
$goodsDB = new IQuery(‘goods’);
$goodsDB->where = “id = 10”;
$goodsData = $goodsDB->find();
. find()就是执行查询最终数据的一个接口。

创建好IQuery 对象以后,就可以设置各种类属性来组合查询数据了。
主要属性列表如下:
属性名称数据类型说明
fields String 可选默认* 读取表的字段数据
where String 可选默认无查询条件
join String 可选默认无表连接操作,比如:
$db = new IQuery(‘goods as g’);
$db->join=”left join products as p on g.id = p.goods_id”;
$db->find();
group String 可选默认无表分组操作,比如:
$db = new IQuery(‘goods as g’);
$db->group = “price”;
$db->find();
having String 可选默认无表分组结果的筛选,设置group 属性才有意义
order String 可选默认无表排序字段
limit Int 可选默认20 条读取指定数量的条数
page Int 可选默认无设置分页。设置后IQuery 类库增加paging 属性(分页类)
pagesize Int 可选默认20 条每个分页显示的数据量,设置page 属性才有意义
pagelength Int 可选默认10 页显示多少页数,设置page 属性才有意义
cache String 可选memcache, 缓存查询结果提高效率,降低数据库压力。填写缓存的模式,前提是您的系统必须支持iWEBShop 缓存技术

debug Int 可选默认0 关闭;1 开启调试SQL 语句,系统会自动输出完整的SQL 原生态语句


本人实际开发中书写代码应用

查询:

function give_goods_list(){
   $giveaway_Obj = new IQuery('giveaway');
   $giveaway_Obj -> where = "is_del = 0";
   $giveaway_infos = $giveaway_Obj -> find();
   $this->data = $giveaway_infos;
   $this->redirect('give_goods_list');
}


IModel类:

数据库写入一般用IModel 类,目前支持update(更新),add(添加),del(删除),dropTable(卸载
表),createTable(创建表)。
一般使用都是通过创建new IModel(表名)对象来创建的数据库实例,然后调用setData()接口进行数据设
置。
比如要更新goods 表的price 字段,那么就是:
$goodsDB = new IModel(‘goods’);
$goodsDB->setData(array(‘price’ => 1000));
$goodsDB->update(‘id = 2’);


方法名字数据类型说明
update($where,
$except=array()
)
$where:string 更新条件
$except:array 特殊表达式
字段(非字符串类型)
更新记录
通过$this->setData($array); $array(字段=>更新数据)
表更新字段对应数据关系
add() 添加记录
通过$this->setData($array); $array(字段=>添加数据)
表添加记录对应数据关系
del($where) $where:string 删除条件删除记录
把满足$where 条件的记录都删除

dropTable() 卸载表
把当前IModel 实例对应的表删除
createTable() 创建表
创建当前IModel 实例对应的表
通过$this->setData($array); 设置创建表元素(多维数组
$array = array(
"column" => 字段配置array("type" => 数据类型,"default"
=> 默认值,"comment" => 字段注释,"auto_increment" =>
数值自增长)
"comment"=> 表注释
"index" => 表索引array("索引类
型:PRIMARY,KEY,UNIQUE" => "字段名称")

本人实际开发中书写代码应用

添加:

function supplier_edit_add()
{
   $id = IFilter::act(IReq::get('id'),'int');
   $company   = IFilter::act(IReq::get('firm_name'));
   $address = IFilter::act(IReq::get('address'));
   $pname  = IFilter::act(IReq::get('name'));
   $mobile = IFilter::act(IReq::get('mobile'));
   $phone  = IFilter::act(IReq::get('telephone'));
   $img = IFilter::act(IReq::get('img'));
   $account  = IFilter::act(IReq::get('account_num'));
       $bank   = IFilter::act(IReq::get('bank_name'));
   $province = IFilter::act(IReq::get('province'),'int');
   $city    = IFilter::act(IReq::get('city'),'int');
   $area     = IFilter::act(IReq::get('area'),'int');
   $_POST['area'] = "";
   if($province && $city && $area)
   {
      $_POST['area'] = array($province,$city,$area);
   }
   $user_id =$this->admin['admin_id'];
   $stock  = new IModel('supplier_list');
   $stock_Init =  array(
      'firm_name'    =>   $company,
      'area'         =>   $_POST['area'] ? ",".join(",",$_POST['area'])."," : "",
       'address'      =>   $address,
      'name'         =>   $pname,
      'mobile'       =>   $mobile,
      'telephone'    =>   $phone,
      'img'          =>   $img,
      'account_num'  =>  $account,
      'bank_name'    =>  $bank,
       'create_time'  =>   date('Y-m-d H:i:s',time()),
       'admin_id'     =>   $user_id
   );
   if($id){
      $stock->setData($stock_Init);
      $stock->update('id = '.$id);
   }else{
      $stock->setData($stock_Init);
       $stock->add();
   }

   $this->redirect('supplier_list');
}
删除:(注意:软删除,数据库保留)
function supplier_list_del(){
   $id = IFilter::act(IReq::get('id'),'int');
   $stock = new IModel('supplier_list');
   $stock->setData(array('is_del'=>1));
   if($id)
   {
      $stock->update(Util::joinStr($id));
   }else{
      die('请选择要删除的数据');
   }
   $this->redirect("supplier_list");
}

更新:

function suppliet_list_restore(){
   $id = IFilter::act(IReq::get('id'),'int');
   //生成goods对象
   $stock = new IModel('supplier_list');
   $stock->setData(array('is_del'=>0));
   if($id)
   {
      $stock->update(Util::joinStr($id));
   }
   else
   {
      die('请选择要恢复的数据');
   }

   $this->redirect("supplier_list");
}

原生态的SQL 可以用IDBFactory::getDB()->query($sql);此时可以直接写原生态的SQL 语句,但是要注意
SQL 语句中把表前缀增加上,因为IDBFactory 不会对$sql 有任何的修改,直接100%原样输送给Mysql,当要执
行一些特殊的,复杂的SQL 可以使用此方法。

本人实际开发中书写代码应用

$sql_class = "SELECT zce.category_id,gs.brand_id,zc.parent_id from (zqwy_goods as gs left join zqwy_category_extend as zce on gs.id = zce.goods_id) left join
                            zqwy_category as zc on zce.category_id = zc.id WHERE gs.id =".$v['goods_id'].";";
$goods_class = IDBFactory::getDB()->query($sql_class);


您可能感兴趣的文档:

--结束END--

本文标题: iwebshop框架用到的几种常用sql处理

本文链接: https://lsjlt.com/news/38742.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • iwebshop框架用到的几种常用sql处理
    query 查询类标签(用于前端遍历)实例:{query:name=goods}{$item['name']}<br/>{/query}本人实际开发中书写代码应用:<php &n...
    99+
    2024-04-02
  • 聊聊几种常用的PHP框架及其区别
    PHP框架是广泛应用于Web开发中的工具,以其良好的结构、清晰的模块化特性和简单的使用方式而受到开发者们的喜爱。每种框架都有其自身的优缺点和适用范围,本文将介绍几种常用的PHP框架及它们之间的区别。LaravelLaravel是一款优秀的P...
    99+
    2023-05-14
  • Python几种比较常见的测试框架
    python 几种常见的测试框架 unittest 参考文档: https://docs.python.org/3/library/unittest.html unittest笔记 The unittest unit test...
    99+
    2023-01-31
    几种 框架 常见
  • sql优化常用的几种方法
    sql 优化常用的方法 问题:常用的 SQL 优化方法有哪些? 答案:常用的 SQL 优化方法包括以下几种: 1. 索引优化 创建适当的索引以加速查询,减少表扫描。 删除不必要的索引以...
    99+
    2024-06-17
    sql优化
  • uniapp中常用的几种提示弹框
    目录一、成功提示弹框二、加载提示弹框三、确认取消提示框 四、列表选择提示弹框五、自定义图标 总结 一、成功提示弹框 在执行增、删、改、查等提交成功后弹出...
    99+
    2024-04-02
  • 用SQL语句获取常见的几种日期
    用SQL语句获取常见的几种日期数值 ---上周 SELECT TO_CHAR(TRUNC(SYSDATE, "IW") - 7, "yyyymmdd") FROM DUAL SELECT TO_CHA&#...
    99+
    2020-08-10
    用SQL语句获取常见的几种日期
  • Android开发基础 几种常用对话框的使用
    Android开发基础 几种常用对话框的使用 开发步骤如下:(1)布局界面(2)获取按钮,添加事件监听器,实现对话框 。 我采用的是Relati...
    99+
    2022-06-06
    android开发 Android
  • MySQL 中 SQL 优化常用的30 种方法,你会几种?
    1、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2、应尽量避免在 where 子句中使用!=或操作符,否则将引擎放弃使用索引而进行全表扫描。 3、应尽...
    99+
    2014-10-21
    MySQL SQL 优化常用的30 种方法,你会几种?
  • drupal常用到的几种过滤函数小结
    本文总结了drupal用到的几种过滤的函数。分享给大家供大家参考。具体介绍如下: check_plain()函数:check_plain()函数返回的文本不包含任何HTML标签,这个函数通过将HTML标签转义为HTML实...
    99+
    2022-06-12
    drupal 常用 过滤 函数
  • Java处理延时任务的常用几种解决方案
    目录前言数据库轮询原理优缺点Java延迟队列Reids监听失效key创建监听类,实现MessageListener接口RocketMq延迟消息总结前言 项目中经常会遇到如下的需求: ...
    99+
    2024-04-02
  • .NET平台常用的框架整理
    分布式缓存框架:Microsoft Velocity:微软自家分布式缓存服务框架。Memcahed:一套分布式的高速缓存系统,目前被许多网站使用以提升网站的访问速度。Redis:是一个高性能的KV数据库。&...
    99+
    2024-04-02
  • OpenCV图像处理之七种常用图像几何变换
    目录0 程序环境与所学函数1 裁剪、放大、缩小2 平移变换3 错切变换4 镜像变换5 旋转变换6 透视变换7 最近邻插值、双线性插值0 程序环境与所学函数 本章程序运行需要导入下面三...
    99+
    2024-04-02
  • python常用的几种GUI解析
    在Python中,开始使用GUI编程的步骤并不复杂,但是它们要求用户开始做出一些选择。作为通用编程语言,每个常见操作系统都有可用的解释器,所以创建图形用户界面对于Python来说并不是难事。程序员可以有很多的选择,真正困难的是如何为用户创建...
    99+
    2023-01-31
    几种 常用 python
  • springboot框架的全局异常怎么处理
    这篇文章主要介绍“springboot框架的全局异常怎么处理”,在日常操作中,相信很多人在springboot框架的全局异常怎么处理问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”springboot框架的全局...
    99+
    2023-06-13
  • 最近几年用过的Android框架
    一、网络  1、项目为MVP架构,最好使用RxJava + Retrofit      RxJava使用介绍    https://www.jianshu.com/nb/143...
    99+
    2022-06-06
    android框架 Android
  • 学习canvas框架 详解常用的canvas框架
    探索Canvas框架:了解常用的Canvas框架有哪些,需要具体代码示例 引言:Canvas是HTML5中提供的一个绘图API,通过它我们可以实现丰富的图形和动画效果。为了提高绘图的效率和便捷性,许多开发者开发了不同的Canva...
    99+
    2024-01-17
    Canvas 框架 常用
  • Vue实现全局异常处理的几种方案
    目录一、前端常见异常二、实现简单的全局异常处理三、Vue3 如何实现异常处理四、总结在开发组件库或者插件,经常会需要进行全局异常处理,从而实现:\ 全局统一处理异常;为开发...
    99+
    2024-04-02
  • python 常用的异步框架汇总整理
    目录正文开始1. Tornado2. Aiohttp3.Sanic4. FastAPI5. Ruia总结参考资料正文开始 asyncio 是 Python 3.4版本引入的标准库,直接内置了对异步IO的支持。 as...
    99+
    2022-06-02
    python 异步框架
  • mysql常用到的几个命令
    查询类show databases;   --查看所有的数据库名show tables;     --查看当前数据库所有的数据表名,需要先 use 数据库create data...
    99+
    2024-04-02
  • 优化mysql的几种常用方法
    下文我给大家简单讲讲关于优化mysql的几种常用方法,大家之前了解过相关类似主题内容吗?感兴趣的话就一起来看看这篇文章吧,相信看完优化mysql的几种常用方法对大家多少有点帮助吧。   ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作