ThinkPHP实现对数据库中表的修改删除以及两种原生SQL语句的执行

说道数据的修改就是主要用到了save的方法。

在建立对象的时候无论是用D方法还是用M的方法,都可以相应的正确建立对象。

然后,在我们建立完对象之后,我们就应该确定自己要修改的属性以及他的值,然后可以用建立关联数组的方法,写入要修改的数据。

当上面的工作完成之后,就应该用我们的save方法进行修改。

下面是自己的实例:

function update(){

$goods=M("emptest");

$arr=array(‘id‘=>‘7‘,‘name‘=>‘xu2xuning‘,‘salary‘=>5555);

$res=$goods->save($arr);

//这里返回的是被影响的行数,在crud的操作里面,都是返回的受影响的行数,dql是返回的结果集

echo $res;

}

同样的我们也可以用AR的方式逐步添加,但是,这里就遇到了一个问题,数据设计完成之后就能够直接保存了,这里显然是不可能的。

所以这里支持和where语句通用,这样的话,对于数据的修改那就是再方便不过了,即以下的方法:

$goods=D("emptest");

$goods->name="Cool";

$goods->garde="2";

$goods->email="[email protected]";

$goods->salary="7777";

$goods->where(‘id=2‘)->save();

返回值和上面的是同一数据。

接下来就是数据的删除,说道删除,看着挺简单的;

这是删除指定主键的数据行。

function delete(){

$goods=D("emptest");

$goods->delete(9);

}

也可以删除多个主键的值得行。

$goods->delete(”1,2,3“); //注意,一定要带引号

同样的,也可以条件性的删除操作。

$goods->where("id>=13 and id<=18")->delete();

这样,增删该查在thinkphp的方法就基本上完成了,还要说的就是执行原生的sql语句。

一般的额增删改查sql语句可以分为两种,一种是数据查询,也可以理解为select语句

另一种是数据操作语句,因为两种语句的返回值是不同的,之前都说过的,所以在ThinkPHP中

执行的方法也是不同的。

dql语句:用query方法(不再是传统的万能方法了),返回数组【1】

dml语句:用execute方法,返回的是布尔值。【2】

【1】:

function test(){

$goods=D("emptest");

$sql="select * from emptest";

$res=$goods->query($sql);

show_bug($res);//这是我自己定义的一个方法,就是var_dump

}

【2】:

function testdml(){

$goods=D("emptest");

$sql="update emptest set name=‘hell‘ where id=7";

$res=$goods->execute($sql);

show_bug($res);

}

时间: 2024-11-10 11:08:17

ThinkPHP实现对数据库中表的修改删除以及两种原生SQL语句的执行的相关文章

点评阿里JAVA手册之MySQL数据库 (建表规约、索引规约、SQL语句、ORM映射)

下载原版阿里JAVA开发手册  [阿里巴巴Java开发手册v1.2.0] 本文主要是对照阿里开发手册,注释自己在工作中运用情况. 本文内容:MySQL数据库 (建表规约.索引规约.SQL语句.ORM映射) 本文难度系数为三星(★★★) 本文为第四篇 第一篇 点评阿里JAVA手册之编程规约(命名风格.常量定义.代码风格.控制语句.注释规约) 第二篇 点评阿里JAVA手册之编程规约(OOP 规约 .集合处理 .并发处理 .其他) 第三篇 点评阿里JAVA手册之异常日志(异常处理 日志规约 ) 第四篇

ORACLE数据库SQL语句的执行过程

首先是最简单链接数据库的过程,JDBC标准的链接的过程: 1. 载入JDBC驱动程序,一般来说载入驱动程序,采用的都是利用Class.forName()反射来加载驱动 Oracle: Class.forName("oracle.jdbc.driver.OracleDriver"); SQLServer: Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); MySql: Class.forNam

SqlServer2008 数据库同步的两种方式(Sql JOB)

原文:SqlServer2008 数据库同步的两种方式(Sql JOB) 数据库同步是一种比较常用的功能.以下结合我自己的体会整理的,如果有理解不完全或者有误的地方望大牛不理赐教.下面介绍的就是数据库同步的两种方式: 1.SQL JOB的方式  sql Job的方式同步数据库就是通过SQL语句,将一个数据源中的数据同步到目标数据库中.特点是它可以灵活的通过SQL的方式进行数据库之间的同步操作.可以在制定的时间时间作为任务计划自动执行.缺点是需要写SQL来进行操作.既然是数据库之间的同步就涉及到数

数据库文件导入导出操作,以及赋予权限SQL语句

1.导出数据库xxxx和tlog(经过测试,没有问题)# /data/mysql/bin/mysqldump -u root -ppassword qq9x | gzip > /home/xxxxDataBase.sql.gz# /data/mysql/bin/mysqldump -u root -ppassword  tlog | gzip > /home/tlogDataBase.sql.gz2.导出到本地文档在SFTP下#get -r /home/xxxxDataBase.sql.gz#

数据库表设计的很灵活,是否做SQL语句也那么容易呢

由于项目需要,我们把一些不经常变的常数通过数据字段配置好,系统初始化的时候通过数据库字段去更新数据.下面就实例说明. 我有一张这样的表 ,你会发现meterkindid和measureid是代码,只有通过数据配置的数据字典才能解析出我们要的值,下面为数据字典表结构 ,这样设计就很灵活,FieldID为列名称,ID为上面表的值,value为解析值,也就是代码对应的名称,下面再发一张字典的数据图 MK001和MK002对应数据字典的水表跟电表,MS001和MS002对应数据字典的计量单位分别为吨还是

oracle数据库【表复制】insert into select from跟create table as select * from 两种表复制语句区别

create table  as select * from和insert into select from两种表复制语句区别 [sql] view plain copy create table targer_table as select * from source_table insert into target_table(column1,column2) select column1,column2 from source_table 以上两句都是将源表source_table的记录插

cmd 命令行模式操作数据库 添加查询 修改 删除 ( 表 字段 数据)

一 查看数据库.表.数据字段.数据 1 首先配置环境变量 进入mysql  或者通过一键集成工具 打开mysql命令行  或者mysql 可视化工具 打开命令行 进入这样的界面   不同的机器操作不同,这里就不一一描述了 2 查看当前所有的数据库 show  databases: 3 选择(进入) 数据库 use   数据库名: 4  查看当前数据库所有的表 show tables: 5 查看 某个表的字段结构 desc  表明: 6 查询表数据 select * from  表名: 二  新建

MYSQL批量修改表前缀与表名sql语句

修改表名 ALTER TABLE 原表名 RENAME TO 新表名; 一句SQL语句只能修改一张表 show tables; 1. SELECT CONCAT( 'ALTER TABLE ', table_name, ' RENAME TO db_', substring(table_name, 4), ';' ) FROM information_schema. TABLES WHERE table_name LIKE 'ct%'; 批量复制一下到Notepad++中,只保留sql语句,再复

动态产生和删除相关组件并生成SQL语句

(********************************************************************************************************** * * * 窗体描述:产生SQL条件语句,系统模块 [计划管理-打卡] 打印大/小卡 *           能够根据维护进去的条件,生成过软类型: 缸内过软.缸外过软.连续皂洗.空白 * * 关键功能点:1.动态产生和删除子/父等相关组件按钮(注意移动组件位置) *