问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

发布网友 发布时间:2022-04-22 10:34

我来回答

3个回答

热心网友 时间:2022-04-07 08:10

添加数据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方法实例化数据模型。

热心网友 时间:2022-04-07 09:28

如果你的数据库各个字段的值都没设置非空,这样的sql是可以执行的。

热心网友 时间:2022-04-07 11:03

数据库表字段会区分大小写,将表字段改为小写,再删除缓存后,即可正常插入。
thinkphp里面的add方法为什么我插入错误的表字段还是可...

因为你的id是自增的,虽然没有数据,但是还是增加了一条记录

ThinkPHP3.2框架使用addAll()批量插入数据的方法

thinkphp中model类的addAll()方法可以将数据同时添加到数据库中.// 批量添加数据 (only MySQL)$user = M('user');//array('表字段'=&gt;'值')$dataList[] = array('name'=&gt;'thinkphp','email'=&gt;'thinkphp@gamil.com');$dataList[] = array('name'=&gt;'onethink','email'=&gt;'onethink@...

thinkphp 我用其提供的add和save方法做插入和更新操作时,居然有默认...

应该是没有默认值的,看看是不是数据库中相应字段属性误操作为有默认值了。

thinkphp 我用create方法add()添加数据时返回false 给if判断返回false...

user = D('Users') ;if($user-&gt;create()) { $user-&gt;add();} else { $this-&gt;error($user-&gt;getError());}这样写试试

thinkphp3.2 自动填充不成功是怎么回事

create()ThinkPHP 自动验证与自动填充是在创建数据对象 create() 时实现的,因此自动验证与自动填充无效很大程度上与 create() 有关。create 方法语法如下:create(mixed data, string type)data 表示接受的数据,type 表示本次的具体操作(写入还是更新数据)。两个参数都可省略,data 参数省略的情况下...

thinkphp 怎么循环把图片插入数据库

// 上传文件 2. $fileElementName = "file";3. $filedata = file_get_contents($_FILES[$fileElementName]["tmp_name"]);4. if(empty($_FILES[$fileElementName]['tmp_name'])){ 5. $this-&gt;error('没有上传的文件!');6. return false;7. } 8. $Images =...

thinkphp中就是把一个表的数据插入到另一个结构一模一样的表里 如何使...

你可以试一下这个语句,将表2查询出来的结果插入到表1中。insert into 表1 select * from 表2;

thinkphp 数据库插入时重复插入

你在插入之前要先对数据进行一次过滤也就是逻辑上得唯一判断后再作入库处理,否则提示已存在不插入即可。

Thinkphp 怎么复制一条数据然后插入到当前表里

set = M("News")-&gt;where("catid = 6")-&gt;select();foreach ($set as $r){ aa[ziduan1]=$r['ziduan'];aa[ziduan2]=$r['ziduan'];aa[ziduan3]=$r['ziduan'];//所有字段都列出 M("News")-&gt;add($aa);} 如果只是一条数据可以这样写 set = M("News")-&gt;where("catid =...

thinkphp 二维数组怎么插入数据库

($data as $k =&gt; $v) { // 循环保存每一条值 map = array();map['k'] = $k; // 保存216 这个键名 map['a'] = $v['a'];map['b'] = $v['b'];map['c'] = $v['c'];map['d'] = $v['d'];M('')-&gt;table('table_name')-&gt;add($map);} ...

数据库添加数据 不同表格间的数据导入 怎么插空列 大数据 柱形图怎么显示数据 柱状图怎么添加数据
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
某地产的大理石含有的主要杂质是氧化铁,该地某工厂利用该大理石制备CaC... 架式香菇好管理吗? 皮鞋放久了掉皮如何修复? 夏枯草煮水喝功效作用 手机里的应用下载后安装包在哪里? APK软件安装包放在什么文件夹? 为什么我用烧饼游戏大师玩天天爱消除,分数一超过一百万就说此局作废... 2012元素消除战iPhone游戏信息 消灭星星大师关卡 自从天天爱消除游戏更新后,发现游戏烧饼大师,葫芦侠等减速软件都不好... thinkphp怎么连接数据库 关于ThinkPHP多对对关联模型插入数据的问题 thinkphp 想在原有值得前提下追加数据进去 thinkphp框架的model的添加怎么写 thinkphp5模型如何使用redis操作数据库CURD操作 怎么在thinkphp添加数据时获取自动增长的id? 怎么在thinkphp添加数据时获取自动增长的id thinkphp5怎么添加数据 ps文字怎么变成像图片这样一个一个点组成? 怎么用PS把彩色照片变成黑白点图 ps如何把图片改成一个个点组成 ps图片点阵效果怎么操作,具体的!!链接也行 电脑qq群怎么发语音 ps怎么把图变成点状的 联想笔记本启动不了,换系统也没反应 Photoshop怎么把照片变成点线面 电脑中,QQ群怎么发语音通话视频 PS如何把图片转成 点点的效果 只有黑白 方便针式打印 PC端QQ群语音怎么放大语音聊天窗口? PS怎么把图变成一个一个小点 怎么在THINKPHP中引入PHP文件 thinkphp 中怎么在数据表中插入新数据 在 ThinkPHP的控制器中 怎么把数据添加进数据库 thinkphp点击按钮增加数据 Thinkphp 怎样添加数据表的字段 thinkphp5中的model模型层,有什么用 tp5 在模型文件里怎么写增删改查 php中thinkphp5中模型有什么用 仲夏夜恋歌歌词? 小花仙仲夏夜恋歌试听,要完整的 小花仙第二季千韩唱的歌叫什么? 小花仙二季插曲仲夏夜恋歌 仲夏夜恋歌歌词是什么? 从哪个软件可以听到完整版的仲夏夜恋歌? “小花”的拼音是什么? 小花仙2里“金色天使”比赛中千韩唱的歌叫什么名字? 小花仙第二季歌曲千韩仲夏夜恋歌要怎么唱? 小花仙第二季的19集千韩唱的歌 小花仙的插曲有哪些? 仲夏夜恋歌的歌词