在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() // 根据条件保存修改的数据
首先可以采用的是Jquery的Ajax技术进行 *** 作。
思路是这样的,首先现在前端判断JS并提交给后台,代码如下:
$(function(){$.ajax({
type:post,
dataType:json,
url: save.php,
data:$("input[name=x]").val(),
success:function(data){
}
})
})
这样后端接收到Ajax请求后进行连接数据库并且插入数据
其它 *** 作类似进行 *** 作即可。
看你的表格,只需要从表单中循环取出所有行,然后依次写入数据库就行了假设表单中是:txt1[] txt2[]......
通过$a=$_POST["txt1[]"]取得值,然后循环写入:
for($t=0$t<=count($a)-1$t++){
// insert into 表 (字段1,......) values ('$a[$t]',.....)
}
至于打印,在JS中直接windows.print就行了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)