网站建设资讯

NEWS

网站建设资讯

php添加数据返回主键 mysql新增返回主键

怎么在thinkphp添加数据时获取自动增长的id

怎么在thinkphp添加数据时获取自动增长的id?

专注于为中小企业提供成都网站制作、网站建设、外贸网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业麻栗坡免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了成百上千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

下面是TP5的方法,TP3的在添加后变量直接就获取了。添加数据后如果需要返回新增数据的自增主键,可以使用 getLastInsID 方法:

Db::name('user')-insert($data);

$userId = Db::name('user')-getLastInsID();或者直接使用 insertGetId 方法新增数据并返回主键值:

Db::name('user')-insertGetId($data);

ThinkPHP

ThinkPHP是一个免费开源的,快速、简单的面向对象的轻量级PHP 开发框架,遵循 Apache2 开源协议发布,是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。

基本特性

简单易用的MVC模式                                                                         

模型(M):模型的定义由Model类来完成。Model类位于项目目录下面的LibModel目录。

控制器(C):应用控制器(核心控制器)和Action控制器都承担了控制器的角色,区别在于Action控制器完成业务过程,而应用控制器(App类)负责调度控制。Action控制器位于项目目录下面的LibAction目录。

视图(V):模板的实现是和框架无关的,做到了100%分离,可以独立预览和制作。模板目录位于项目目录下面的Tpl目录。

2.独创的核心编译和二分法项目编译机制

ThinkTemplate是一个使用了XML标签库技术的编译型模板引擎,支持两种类型的模板标签,使用了动态编译和缓存技术,而且支持自定义标签库。

ThinkPHP add方法 使用以后插入空数据

添加数据add方法是CURD(Create,Update,Read,Delete / 创建,修改,读取,删除)中的 Create的实现,ThinkPHP 支持以普通数组方式和面向对象方式将数据写入数据表。

现在以操作 user 表数据的例子为例,来演示如何在 ThinkPHP 中实现对数据表的数据添加操作。

数组方式添加数据

例子: 在 IndexAction 控制器(Lib/Action/IndexAction.class.php),添加 insert()操作:

public function insert(){

header("Content-Type:text/html; charset=utf-8");

$Dao = M("User"); // 实例化模型类

// 构建写入的数据数组

$data["username"] = "休假";

$data["password"] = md5("123456");

$data["email"] = "123456@163.com";

$data["regdate"] = time();

// 写入数据

if($lastInsId = $Dao-add($data)){

echo "插入数据 id 为:$lastInsId";

} else {

$this-error('数据写入错误!');

}

}

语法解读

M("User") 用于高效实例化一个数据模型(M 是 new Model 的简写,称为快捷方法),参数为要操作的表名。

接下来构建要保存数据的数组 $data 。

最后是用 add() 方法将数据写入库表,由于使用的是 M快捷方法,需要将 $data 数组传入 add() 方法。

add() 方法如果添加数据记录成功,返回的是新数据记录主键,可直接得到。

该例子实际运行的 SQL 为:

INSERT INTO user(username,password,email,regdate) VALUES ('休假','e10adc3949ba59abbe56e057f20f883e',

123456@163.com',1283612673)

对象方式添加数据

上面的方式是以构造数据数组的方式,将数据以参数形式传入add方法写入数据表。ThinkPHP 也支持以对象的方式将数据写入数据表,将上面的代码更改为:

public function insert(){

header("Content-Type:text/html; charset=utf-8");

$Dao = M("User"); // 实例化模型类

// 数据对象赋值

$Dao-username = "休假";

$Dao-password = md5("123456");

$Dao-email = "123456@163.com";

$Dao-regdate = time();

// 写入数据

if($lastInsId = $Dao-add()){

echo "插入数据 id 为:$lastInsId";

} else {

$this-error('数据写入错误!');

}

}

对象方式的数据以数据对象方式赋值,调用 add 方法写入数据时不需要传递参数。

表单数据智能写入create 方法

除了手动构造入库的数据集之外,ThinkPHP 还提供了自动创建数据对象的create() 方法。create() 方法将自动收集提交的表单数据并创建数据对象而无需人工干预,这在表单数据字段非常多的情况下更具优势。

将前文写入表单数据的例子用 create() 来实现:

public function insert2(){

header("Content-Type:text/html; charset=utf-8");

$Dao = M("User");

if($Dao-create()){

$Dao-password = md5($_POST["password"]);

$Dao-regdate = time();

if($lastInsId = $Dao-add()){

echo "插入数据 id 为:$lastInsId";

} else {

echo "数据写入错误!";

}

}else{

exit($Dao-getError().' [ a href="javascript:history.back()"返 回/a ]');

}

}

create() 创建数据对象后,将自动收集提交过来的表单数据。而表单数据可能需要经过一定加工(例如将密码加密)才能写入数据表,所以可以对数据对象的成员属性值根据进行修改或添加删除等。

提示:create() 创建的数据对象存放于内存,在执行入库动作(add() 或 save())之前,都可以进行修改。

在上面的例子里,create()方法 的行为和 date()方法 是一致。但 date() 方法只是简单的创建数据对象,但 create() 方法还具备:

令牌验证

数据自动验证

字段映射支持

字段类型检查

数据自动完成

等各种高级的数据功能,要完成这些高级数据模型功能,需要使用 D方法实例化数据模型。

php+MYSQL添加记录时如何返回带日期的序列号,列如今天2016051501,20160515

添加记录的时候返回的是被插入数据的主键id,

需要的日期序列号要查询一下

select date_format(时间字段,'%Y%m%d%H%i%s') as ‘日期序列号’ from 表名;

thinkphp更新数据怎么添加条件?

创建一个thinkphp 项目tp,如下图,其中index.php为入口文件,App为项目文件夹

在App/Conf下的config.php中,配置数据库连接

在数据库中创建表qq_game,add  写入(新增)数据到数据库,语法如下,返回值是插入数据的主键值ID

在App/Lib/Action下的IndexAction.class.php中,创建函数addGame,将数据插入数据表,如下:

添加操作,也可以使用连贯操作,即将上图代码最后两行换为下图,即可显示:


名称栏目:php添加数据返回主键 mysql新增返回主键
链接分享:http://njwzjz.com/article/hijidd.html