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对象,可以查询数据和修改数据. ...
随机推荐
- 【微信开发】JS和PHP分别判断当前浏览器是否微信浏览器
1.PHP端 //判断是否微信浏览器 -xzz1125 function is_weixin() { if (strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMes ...
- MFC总结之CListCtrl用法及技巧(一)
本文根据本人在项目中的应用,来谈谈CListCtrl的部分用法及技巧.当初学习时,查了很多资料,零零碎碎的作了些记录,现在主要是来做个总结,方便以后查阅.主要包括以下十三点内容:基本操作.获取选中行的 ...
- centos-7 charpter one
一.system locale 的介绍: 系统的区域设置被保存在/etc/locale.conf 这个文件中,systemd在启动的时候会去读取它:所有用户和程序的区域设置都继承自它, 当然用户&am ...
- ruby配置相关
1.安装ruby 方式1: yum install ruby 方式2:https://www.ruby-lang.org/en/downloads/ 使用源码安装 ./configure make m ...
- 《转》ceilometer的数据採集机制入门
问题导读 1.ceilometer负责什么事情? 2.ceilometer 有哪些概念? 3.ceilometer 怎样採集hardware? 附上openstack 官网API http://d ...
- Atitit.软件gui按钮and面板---os区-----linux windows搜索文件 文件夹
Atitit.软件gui按钮and面板---os区-----搜索文件 1. Find 1 2. 寻找目录 1 3. 2. Locate// everything 1 4. 3. Whereis (wi ...
- C++11新特性实验
#include <iostream> #include <vector> #include <map> #include <string> #incl ...
- EditText禁止输空格
1.EditText禁止输空格 editText.setFilters(new InputFilter[]{filter}); private InputFilter filter=new Input ...
- Android开发日记(七)
trim()方法返回调用字符串对象的一个副本,但是所有起始和结尾的空格都被删除了,例子如下:String s=" Hello World ".trim();就是把" ...
- oracle时间操作结合to_char和to_date使用
1,按每个10分钟进行分组展示数据 例如 有这么一张表 XATXDAY_FLIGHT(航班飞航表), 有这么一个字段 STD_LOCAL(起飞时间), 要求:统计一天24小时之内每隔10分钟,这10分 ...