×

thinkphp中save

thinkphp中save(Thinkphp很垃圾吗)

admin admin 发表于2023-03-26 08:34:10 浏览44 评论0

抢沙发发表评论

本文目录一览:

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更新数据问题

方式很多,例如

$data = $_POST;

$User = M('User');

$User-save($data);

或者

$User = M('User');

$User-create();

$User-save();

要具体方式具体分析,总得来说,流程就是接受浏览器POST来的数据,然后调用模型的save方法来更新,或者直接使用create方法来接受并初始化POST过来的数据。但需要注意的是,数据库里需要已存在这条数据。这些基本的方法你可以去参考开发手册。-thinkphp中save

如果你是这么做的但仍然不行,那么你可以使用模型的getLastSql()方法来查看模型到底是执行了什么样的SQL语句,然后自己看看SQL语句是否有问题,以便排查自己的错误

thinkphp save怎么更新不了数据呢;

方式很多,例如

$data = $_POST;

$User = M('User');

$User-save($data);

或者

$User = M('User');

$User-create();

$User-save();

要具体方式具体分析,总得来说,流程就是接受浏览器POST来的数据,然后调用模型的save方法来更新,或者直接使用create方法来接受并初始化POST过来的数据。但需要注意的是,数据库里需要已存在这条数据。这些基本的方法你可以去参考开发手册。-thinkphp中save

如果你是这么做的但仍然不行,那么你可以使用模型的getLastSql()方法来查看模型到底是执行了什么样的SQL语句,然后自己看看SQL语句是否有问题,以便排查自己的错误

ThinkPHP save() 方法

所以你更改的数值需要从页面提交过去的啊,假设你的前台页面有一个输入框,让填写需要修改的值

input type="text" name="email" /

后台代码就获取这个值,也就是

$data['email'] = I("email"); // 原来的$data['email'] = 'Jack@163.com';