THINKPHP5操作数据库代码示例
数据库表结构
#表结构
CREATE TABLE `qrcode_file` (
`id` int(20) NOT NULL AUTO_INCREMENT,
`active` int(1) DEFAULT '' COMMENT '是否有效',
`owner_id` int(20) DEFAULT '' COMMENT '所有人ID',
`owner_role_id` int(20) DEFAULT '' COMMENT '所有人角色ID',
`qrcode_url` varchar(500) DEFAULT '' COMMENT '二维码解析后',
`scene_id` int(10) DEFAULT '' COMMENT '场景值ID',
`scene_str` varchar(200) DEFAULT '' COMMENT '场景值ID',
`file_id` int(20) DEFAULT '' COMMENT '保存文件id',
`create_by` varchar(25) DEFAULT '',
`update_by` varchar(25) DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='二维码文件表';
控制器代码
//=================================1.新增数据================================//
//$newQrcodeFile = new QrcodeFile();
//var_dump($newQrcodeFile->get_data());//实例化的时候不给参数 返回data
//$newQrcodeFile->active=0;
//$newQrcodeFile->owner_id=123321;
//$newQrcodeFile->owner_role_id=2;
//$newQrcodeFile->scene_id=123456;
//$newQrcodeFile->scene_str="test";
//$newQrcodeFile->create_by="lizhaoyao";
//$newQrcodeFile->update_by="lizhaoyao";
//var_dump($newQrcodeFile->get_data());//成员变量操作之后再返回data
//var_dump($newQrcodeFile->save());//调用save方法 保存数据 只返回成功与否 不返回自增id
//var_dump($newQrcodeFile->getLastInsID());//调用getLastInsID 可以返回最后自增的id
//echo $newQrcodeFile->getLastSql();
//exit; //=================================2.删除数据================================//
//$newQrcodeFile = new QrcodeFile();
//$pk_id=9;
//2.1 主键删除
//$info=QrcodeFile::get($pk_id);//找到主键id为9的数据
//这一步设置完了后会把 模型中的
//protected 'isUpdate' => boolean true
//protected 'updateWhere' =>array("id"=>9)
//if($info){$info->delete();} //2.2 destroy删除 可以批量
//var_dump($newQrcodeFile::destroy($pk_id));//直接调用destroy方法删除
// 支持批量删除多个数据
//var_dump($newQrcodeFile::destroy('11,12,13'));//删除id为 11 12 13的数据 批量删除 返回3 成功删除的条数
//var_dump($newQrcodeFile::destroy(array(21,22,23)));//删除id为 21 22 23的数据 批量删除 返回3 成功删除的条数 //2.3 主键条件删除
//$delete_result=$newQrcodeFile->where('id','>',25)->delete();//把 id>25的数据删掉
//var_dump($delete_result);//返回2 成功删除的条数
//2.4 多条件删除
//$delete_result=$newQrcodeFile->where(array("scene_id"=>"123456","owner_id"=>123))->delete();
//var_dump($delete_result);//返回2 成功删除的条数
//exit; //=================================3.修改数据================================//
//$newQrcodeFile = new QrcodeFile();
//3.1 先找到数据 再更新数据 用对象成员变量的形式 挨个操作
//$user = $newQrcodeFile::get(20);//找到id为20的数据
//$user->owner_id = '789';//赋值 owner_id
//$user->active = '1';//赋值 active
//var_dump($user->save());//去更新 更新的结果是0或者1 //3.2 直接通过数组形式赋值更新
//$save_result=$newQrcodeFile->save(array("owner_id"=>"951","active"=>3),array("id"=>24));//通过save第二个参数传条件进行更新
//var_dump($save_result);//更新的结果是0或者1 //3.3 通过 update方法调用where设定条件更新
//$update_result=$newQrcodeFile->where(array("id"=>10))->update(array('scene_str' => 'tp5'));
//var_dump($update_result);//更新的结果是0或者1
//exit; //=================================4.查询数据================================//
//$newQrcodeFile=new QrcodeFile();
//4.1 使用get静态函数主键获取
//$info = $newQrcodeFile::get(20);//通过主键查找 然后通过成员变量属性方式访问
//var_dump($info->id);
//var_dump($info->active);
//var_dump($info->owner_id);
//var_dump($info->qrcode_url);
//var_dump($info->scene_id); //4.2 使用where条件配合find方法
//$info=$newQrcodeFile->where('owner_id', '789')->find();//获取到的也是对象 也需要通过成员变量属性方式访问获取
//var_dump($info->id);
//var_dump($info->active);
//var_dump($info->owner_id);
//var_dump($info->qrcode_url);
//var_dump($info->scene_id); //4.3 通过主键获取多个数据
//$all_list=$newQrcodeFile::all("20,24,25");//获取到的是多个对象 可以遍历 然后获取成员变量得到字段值
//foreach($all_list as $info)
//{
// var_dump($info->id);
// var_dump($info->active);
// var_dump($info->owner_id);
// var_dump($info->qrcode_url);
// var_dump($info->scene_id);
//} //4.4通过where条件select得到多个
//$all_list=$newQrcodeFile->where("owner_role_id","2")->order("id","desc")->limit(2)->select();
//foreach($all_list as $info)
//{
// var_dump($info->id);
// var_dump($info->active);
// var_dump($info->owner_id);
// var_dump($info->qrcode_url);
// var_dump($info->scene_id);
//} //4.5获取某个列的值
//$column_value=$newQrcodeFile->where("id",20)->value("scene_str");//获取到的直接是一个字符串或者整型
//也可以采用 column方法
//$column_value=$newQrcodeFile->where("owner_role_id","3")->column("scene_str","id");//获取到的直接是以id为键的数组
//var_dump($column_value); //4.6 问题来了 很多时候我们用到的查询结果都是对象 而PHP开发者都喜欢用数组 该怎么办呢?
//可以使用 toArray() 方法来把对象转数组 例如
//$info = $newQrcodeFile::get(20)->toArray();
//$info=$newQrcodeFile->where('owner_id', '789')->find()->toArray();//如果表定义的时间格式的字段不是时间戳就会报错提示转换时间失败 //$all_list=$newQrcodeFile::all("20,24,25");//列表获取的数据需要遍历然后再 toArray 转数组
//foreach($all_list as $info)
//{
// $info=$info->toArray();
// var_dump($info);
//}
//用all方法查出来的是不可以用 toArray 方法转换数组的
//$all_list=$newQrcodeFile->where("owner_role_id","2")->order("id","desc")->limit(2)->select();
//foreach($all_list as $info)
//{
// $info=$info->toArray();
// var_dump($info);
//}
模型代码 QrcodeFile.php
<?php
namespace app\index\model;
use think\Model;
class QrcodeFile extends Model{
//自定义初始化
function get_data()
{
return $this->data;
}
}
THINKPHP5操作数据库代码示例的更多相关文章
- Global.asax中的操作数据库代码无法执行
本人最近在做一个基于Access数据库的Web应用程序,为了实现一个定时更新数据库的需求,我在Global.asax中的Application_Start函数里写了个计时器, void Applica ...
- Linux环境下proc的配置c/c++操作数据库简单示例
在虚拟机上装了oracle11g数据库,原本想利用c/c++学习操作数据库.结果感觉摊上了一个大坑.从安装好oracle数据库到配置好proc的编译选项整整花了二天.但让我意识到自己自己几点薄弱:1. ...
- JS使用ActiveXObject读取数据库代码示例(只支持IE)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- PHP使用PDO操作数据库的示例
<pre><?phpheader("Content-type:text/html;charset=utf8");//error_reporting(E_ALL^E ...
- Python操作MongoDB代码示例
import pymongo #pip install pymongo安装python操作mongodb的模块 myclient=pymongo.MongoClient(host='127.0.0.1 ...
- java通过配置文件(Properties类)连接Oracle数据库代码示例
import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java. ...
- Sprak2.0 Streaming消费Kafka数据实时计算及运算结果保存数据库代码示例
package com.gm.hive.SparkHive; import java.util.Arrays; import java.util.Collection; import java.uti ...
- C#与数据库访问技术总结(十五)之 DataAdapter对象代码示例
DataAdapter对象代码示例 下面的代码将说明如何利用DataAdapter对象填充DataSet对象. private static string strConnect=" data ...
- C#与数据库访问技术总结(六)之Command对象创建SQl语句代码示例
Command对象创建SQl语句代码示例 说明:前面介绍了 Command 对象的方法和一些属性,回顾一下 Command对象主要用来执行SQL语句.利用Command对象,可以查询数据和修改数据. ...
随机推荐
- ERP,SCM,CRM,BRP,OMS,WMS 企业管理的6大核心系统
[导读]:人体共有八大系统:运动系统.神经系统.内分泌系统.循环系统.呼吸系统.消化系统.泌尿系统.生殖系统.这些系统协调配合,使人体内各种复杂的生命活动能够正常进行. 同理,企业要想健康的运转,长久 ...
- 【CentOS6.5】安装之DNS配置错误,yum install 软件报错:ERROR 6或者56错误提示”could not retrieve mirrorlist http://mirrorlist.centos.org ***”
刚安装完CentOS,使用yum命令安装一些常用的软件,使用如下命令:yum grouplist | more. 提示如下错误信息: Loaded plugins: fastestmirror Set ...
- PHP权限控制(转)
PHP: 我这里说到的权限管理办法是一个普遍采用的方法,主要是使用到"位运行符"操作,& 位与运算符.| 位或运行符.参与运算的如果是10进制数,则会被转换至2进制数参与运 ...
- Android 设计的几处硬伤
[核心提示] 一些 Android App 不仅仅是设计风格的问题,产品交互上也比较混乱,造成用户体验不一致,这一部分原因也是 Android 当初设计时遗留的问题. 前几天看到 NovaDNG 介绍 ...
- C# 添加,修改,删除Xml节点 摘录
C# 添加,修改,删除Xml节点 //添加xml节点 private void AddXml(string image, string title) { XmlDocume ...
- Mysql中的算术运算符详解
MySQL 支持的算术运算符包括加.减.乘.除和模运算.它们是最常使用.最简单的一类运算符.表4-1 列出了这些运算符及其作用. 下例中简单地描述了这几种运算符的使用方法: mysql> sel ...
- 大型网站技术架构(3):WEB 前端性能优化
上次说到了性能优化策略,根据网站的分层架构,可以大致的分为 web 前端性能优化,应用服务器性能优化,存储服务器性能优化三大类 这次来说一下 web 前端性能优化,一般来说,web 前端就是应用服务器 ...
- 我写的websocket推送例子,每隔5秒服务器向客户端浏览器发送消息(node.js和浏览器)
node.js服务端 先要安装ws模块的支持 npm install ws 服务端(server.js) var gws; var WebSocketServer = require('ws').Se ...
- 关于 AngularJS 的数据绑定
单向绑定(ng-bind) 和 双向绑定(ng-model) 的区别 ng-bind 单向数据绑定($scope -> view),用于数据显示,简写形式是 {{}}. 1 <span n ...
- 监控 Linux 性能的 18 个命令行工具(转)
http://www.oschina.net/translate/command-line-tools-to-monitor-linux-performance?cmp&p=1# 1.Top- ...