thinkphp的数据库save方法,如果其中一个键值为空为什么拼出来的sql不带引号?

zktz1 2015-05-12 03:27:46
例如代码是这样的

$m=M('member');
$data=$_POST;
$data['id']=3;//主键
$member=$m->save($data);

这里如果$_POST['email']='';
那么拼出来的sql就是 email=, 没有引号,然后就不能update了,$member=0。
换句话说只要$data里有空的键值,那么save($data)就会失败。
换了写法->where('id='.$id)->data($data)->save()也不行

我搜了1个小时了,最后没辙,只能把没有值的替换成NULL,然后数据里写入了‘NULL’,在输出的时候再把‘NULL’替换成''

各位大大,这个是thinkphp自身的问题吗?
还是说我不应该用这个save($data)方法,还有别的方便的update方法?
...全文
553 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jhasheng 2015-06-16
  • 打赏
  • 举报
回复

$m=M('member');
$data=$_POST;
$data['id']=3;//主键
if($m->create($data)){
    $member=$m->save();
}
或者修改时,将主键写入隐藏表单

$m=M('member');
if($m->create()){
    $member=$m->save();
}
Seven小七 2015-06-15
  • 打赏
  • 举报
回复
一般这种情况我都是在数据库给默认值。 email 给默认null 数字型给默认0这样就可以直接操作。$data = $_POST ; 过滤$data值后M('表名')->where($where)->save($data);这样用就没错了。
dr21c 2015-06-15
  • 打赏
  • 举报
回复
不应该吧,除非email是必填字段;
weipingti 2015-05-14
  • 打赏
  • 举报
回复
$m=M('member'); $data=$_POST; $id=3;//主键id(更新id等于3的数据是吗?) $member=$m->where("id=".$id)->save($data);
youarelose 2015-05-14
  • 打赏
  • 举报
回复
尽量少用$_POST,试试用_post()方法,直接用$_POST很容易被SQL注入
内容概要:本文档围绕基于H桥级联五电平逆变器的三相LCL滤波器SPWM调制技术,利用MATLAB/Simulink平台开展系统建模与仿真分析,深入探讨多电平逆变器的调制策略、LCL滤波器的设计方法及其在电力电子系统中的应用。文档不仅聚焦于核心仿真模型的构建与性能验证,还系统整理了大量相关科研资源,涵盖VSG控制、双机并联、下垂控制、无功优化、储能配置、微电网调度等多个前沿方向,展示了MATLAB/Simulink在电力系统、新能源控制、信号处理及智能优化等领域的广泛应用。同时强调科研过程中逻辑思维、创新意识与借助优质仿真资源的重要性,倡导“借力”提升科研效率。; 适合人群:电力电子、电气工程、自动化、新能源系统及相关专业的研究生、科研人员及从事电力电子与微电网仿真的工程技术人员。; 使用场景及目标:①开展多电平逆变器与LCL滤波器的仿真设计及性能优化研究;②深入掌握SPWM调制技术及其在逆变系统中的实现机制;③复现高水平论文中的控制策略与仿真模型,支撑科研项目或论文写作;④结合提供的网盘资源快速获取主流研究方向的Matlab/Simulink代码与模型,加速科研进程。; 其他说明:所有仿真资源可通过关注公众号“荔枝科研社”并访问指定百度网盘链接免费获取,建议读者系统学习文档内容并结合自身研究课题进行实践与创新,充分发挥资源的参考价值与实用价值。
内容概要:本文聚焦于VSG(虚拟同步发电机)双机并联系统中动态虚拟复阻抗在环流抑制与功率均分方面的关键作用,通过Simulink仿真平台系统性地实现了孤岛微电网环境下多逆变器并联运行的核心控制策略。研究深入探讨了动态虚拟复阻抗的设计原理及其对环流的有效抑制机制,确保有功与无功功率的精确均衡分配,同时涵盖了VSG控制、下垂控制、电压电流双闭环调节及系统稳定性分析等核心技术模块。该仿真模型不仅验证了控制算法在静态条件下的有效性,更着重考察其在负载突变等动态工况下的响应速度、鲁棒性与系统整体稳定性,为微电网的可靠自治运行提供了理论依据与实践参考。; 适合人群:具备电力电子、自动控制理论及微电网相关基础知识,从事电气工程、新能源发电系统、分布式能源控制等领域研究的研发人员及高校研究生。; 使用场景及目标:① 深入理解VSG双机并联系统中环流的产生机理及动态虚拟阻抗的抑制方法;② 掌握动态虚拟复阻抗的设计流程及其在实现功率均分中的核心作用;③ 利用Simulink搭建并调试多逆变器协同控制系统,服务于科研项目开发、高水平论文复现或实际工程方案的前期验证。; 阅读建议:建议结合提供的Simulink仿真模型进行动手实践,重点关注控制器参数(如虚拟阻抗值、PI调节器增益)的整定过程与系统动态响应之间的关系,并推荐参考相关领域的权威文献以深化对VSG先进控制策略的理解与优化能力。

4,250

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧