首页 > 后端开发 > 正文

thinkphp的save()方法为什么有时候不行啊。

2024-11-03 08:52:25 | 我爱编程网

今天我爱编程网小编整理了thinkphp的save()方法为什么有时候不行啊。相关信息,希望在这方面能够更好的大家。

本文目录一览:

thinkphp的save()方法为什么有时候不行啊。

thinkphp的save()方法为什么有时候不行啊。

thinkphp为了保证数据库的安全,避免出错更新整个数据表,如果没有任何更新条件,数据对象本身也不包含主键字段的话,save方法不会更新任何数据库的记录。

所以我猜测你的form表单中没有传递id(不包含主键)的值,或者没有任何更新条件,最终导致你save()方法没有效果。

thinkphp的save()方法为什么有时候不行啊。

thinkphp中save函数的意思和用法?

在ThinkPHP中使用save方法根据条件更新数据到数据库。

  • 用法 save($data='',$options=array())

  • 参数 data:要保存的数据,如果为空,则取当前的数据对象;options:为数组的时候表示操作表达式,通常由连贯操作完成;为数字或者字符串的时候表示主键值。默认为空数组。

  • 返回值:如果查询错误或者数据非法返回false,如果更新成功返回影响的记录数

$User = M("User"); // 实例化User对象
 // 要修改的数据对象属性赋值
$data['name'] = 'ThinkPHP';
$data['email'] = 'ThinkPHP@gmail.com';
$User->where('id=5')->save($data); // 根据条件保存修改的数据

为了保证数据库的安全,避免出错更新整个数据表,如果没有任何更新条件,数据对象本身也不包含主键字段的话,save方法不会更新任何数据库的记录。

因此下面的代码不会更改数据库的任何记录

$User->save($data);

除非使用下面的方式:

$User = M("User"); // 实例化User对象
 // 要修改的数据对象属性赋值
$data['id'] = 5;
$data['name'] = 'ThinkPHP';
$data['email'] = 'ThinkPHP@gmail.com';
$User->save($data); // 根据条件保存修改的数据

如果id是数据表的主键的话,系统自动会把主键的值作为更新条件来更新其他字段的值。

还有一种方法是通过create或者data方法创建要更新的数据对象,然后进行保存操作,这样save方法的参数可以不需要传入。

$User = M("User"); // 实例化User对象
 // 要修改的数据对象属性赋值
$data['name'] = 'ThinkPHP';
$data['email'] = 'ThinkPHP@gmail.com';
$User->where('id=5')->data($data)->save(); // 根据条件保存修改的数据

使用create方法的例子:

$User = M("User"); // 实例化User对象
 // 根据表单提交的POST数据创建数据对象
$User->create();
$User->save(); // 根据条件保存修改的数据

thinkphp的save()方法为什么有时候不行啊。

php中 Tp框架修改信息 是TRUE才行 $model->save() !== FALSE 就是行不通

你的代码都没执行啊,你要先执行一遍,然后再用if判断 我爱编程网

<?php
//你替换成这样试试
$model->save();
if($model->save()){
   //要执行的代码
}
?>

上面的create也是一样

以上就是我爱编程网小编给大家带来的thinkphp的save()方法为什么有时候不行啊。全部内容,希望对大家有所帮助!更多相关文章关注我爱编程网:www.52biancheng.com

免责声明:文章内容来自网络,如有侵权请及时联系删除。
与“thinkphp的save()方法为什么有时候不行啊。”相关推荐
thinkphp 什么时候使用缓存
thinkphp 什么时候使用缓存

php中getcache的用法PHP的getcache是读取缓存文件的函数比如常见的当前站点类别,是保存在缓存文件中的,读取的时候用:$this-&gt;categorys = getcache(‘category_content_’.$this-&gt;siteid,’commons’);具体实例:&lt;?php$iterator = new Array

2024-08-01 20:40:20
thinkphp的import和script这些导入有什么不同啊
thinkphp的import和script这些导入有什么不同啊

thinkphp的import和script这些导入有什么不同啊import是tp语法,script是html标签import可以引入js,css两种文件,默认位js使用方法&lt;importtype='js'file="Js.Util.Array"/&gt;type是文件类型,js或者cssfile是文件名和目录,上例Js.Util.Array对应文件为Js/Ut

2024-10-06 01:27:06
ThinkPHP中M方法与D方法有什么区别
ThinkPHP中M方法与D方法有什么区别

ThinkPhp中M和D的区别两个有共同点,都是实例化对象用的。但是D函数实例化的是你当前项目的Lib/Model下面的模块如果该模块不存在的话直接返回实例化Model的对象(意义就与M()函数相同)而M只返回实例化Model的对象..它的$name参数作为数据库的表名来处理对数据库的操作通俗点说,D就是实例化一个基于Model文件的Model,而M则是通过直接实例化Mode

2024-12-02 00:56:29
为什么编译不了java文件啊?
为什么编译不了java文件啊?

win10已经配置好java环境了但是不能编译但能读出已经编译好了的程序那应该还没配置好环境吧,Window无法找到这个命令,你要在环境变量中设置才行假设安装目录:D:\programs\Java\jdk1.7.0_75那么你需要配置环境变量,步骤如下:保存后,关闭CMD,重新打开就可以使用java相关的命令啦为什么编译不了java文件啊?这可能是因为您没有将J

2024-05-27 00:54:10
java程序运行 ,不显示结果 ,我刚装的jdk,运行所有程序都没有结果不知道为什么啊。直接跳到下一行了。
java程序运行 ,不显示结果 ,我刚装的jdk,运行所有程序都没有结果不知道为什么啊。直接跳到下一行了。

java中没错,就是运行不出结果!!!求教!!!!!1.把publicclassdrawstring{及最后一行大括号去掉2.把publicvoidmain(String[]args)改为publicstaticvoidmain(String[]args)3.java文件名要改为DrawString.java可以了。java程序运行,不显示结果,我刚装的jdk,运行所有程序

2024-04-05 16:16:39
为什么我的java工程在idea运行时不显示?
为什么我的java工程在idea运行时不显示?

为什么我的java工程在idea运行时不显示?导入JavaWeb工程到IntelliJIDEA后,右三角运行按钮为灰色不可用可能有以下几个原因:配置问题:检查项目的配置设置。确保你已正确配置了JavaSDK、Web容器(如Tomcat)、以及相关的依赖库。要检查这些设置,请转到“File”&gt;“ProjectStructure”,并在“ProjectSettings”中查看。

2024-04-06 17:43:14
为什么php运行不了(php为什么越来越不行)
为什么php运行不了(php为什么越来越不行)

php判断一个类里面的某个函数是否存在1、首先需要新建一个246.php。2、然后需要按照图示代码输入php网页的结构(&lt;?php?&gt;)。3、然后需要按照图示代码声明PHP与浏览器交互的文件类型和编码。4、function_exists()函数的作用:如果函数已被定义就返回TRUE,如图所示为其语法结构。5、然后需要按照图示代码使用function_ex

2024-10-29 16:19:20
为什么PHP中没有mian方法和mian函数?
为什么PHP中没有mian方法和mian函数?

为什么PHP中没有mian方法和mian函数?PHP中的代码执行方式决定了其不需要像C/C++,Java等语言那样使用main方法或main函数。主要原因有:1.PHP是服务端脚本语言,代码是被web服务器(如Apache)按需调用和执行的,而不是像C/C++那样由操作系统直接执行。2.PHP页面可以有多个入口点,一个页面可以包含多个函数和类,不依赖单一的main函数。3

2024-08-05 23:00:43