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对象,可以查询数据和修改数据. ...
随机推荐
- HttpSession 和URLRewriting
在上面使用Cookie技术存储会话信息的时候发现Cookie存储的数据有限,而且每次需要客户端浏览器携带数据,导致网络的负载过大.因此如果需要存储相对大量的数据,那么可以直接将数据存储在服务器端,这样 ...
- composer error when run composer update
本篇文章由:http://xinpure.com/composer-error-when-run-composer-update/ 错误 很多时候即使是常用的命令也会出现一些奇奇怪怪的错误, 难以预知 ...
- public static void main(String args[])什么意思?
public static void main(String[] args) 这绝对不是凭空想出来的,也不是没有道理的死规定,而是java程序执行的需要. jvm在试图运行一个类之前,先检查该类是否包 ...
- CentOS 5.5 下修改Apache默认端口80
打开 /etc/httpd/conf/httpd.conf 文件 修改两个地方 #Listen 12.34.56.78:80 Listen 80 #把80改为你设置的端口,我设置端 ...
- atitit.提升软件开发的生产力关健点-------大型开发工具最关健
atitit.提升软件开发的生产力关健点-------大型开发工具最关健 1. 可以创作出更好的工具遍历自己 1 2. 大型工具包括哪些方面 2 2.1. ide 2 2.2. dsl 2 2.3. ...
- HDOJ 5289 Assignment 单调队列
维护一个递增的和递减的单调队列 Assignment Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Ja ...
- vue2.0 实现click点击当前li,并动态添加class(这种方法不太喜欢)
1,文件内容 ---- 使用v-for遍历数据 ---- @click="selectSort(item)"添加点击事件,并把每个obj=item传入 ---- v-show=&q ...
- oracle锁表,杀死进程
查询锁表数据 select object_name,machine,s.sid,s.serial#from v$locked_object l,dba_objects o ,v$session swh ...
- django 将model转换为字典
from django.forms.models import model_to_dict from projects.models import ProjectInformation site = ...
- mysql 创建连接是 Cannot create PoolableConnectionFactory (Unknown character set: 'utf8mb4')
Cannot create PoolableConnectionFactory (Unknown character set: 'utf8mb4') maven 依赖换版本 <dependenc ...