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

zktz1 zktz1 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
例如代码是这样的

$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方法?
...全文

相关推荐

ThinkPHP数据操作方法总结

主要介绍了ThinkPHP数据操作方法,以实例形式较为详细的分析总结了ThinkPHP添加、更新、查询及删除数据的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下

weixin_38562392

ThinkPHP CURD方法之field方法详解

ThinkPHP CURD方法的field方法主要目的是标识要返回或者操作的字段,可以用于查询和写入操作。这篇文章主要介绍了field方法的详细用法,需要的朋友可以参考下

weixin_38500709

ThinkPHP中limit()使用方法详解

本文介绍ThinkPHP的limit()方法的用法。limit方法可以用于对数据库操作的结果进行取指定范围的条数。即相当于是在mysql查询语句中的limit子句

weixin_38608688

thinkphp3.2.0 setInc方法 源码全面解析

下面小编就为大家分享一篇thinkphp3.2.0 setInc方法 源码全面解析,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

weixin_38544152

ThinkPHP实现将SESSION存入MYSQL的方法

本文以实例讲解了ThinkPHP实现将SESSION存入MYSQL的方法,所采用的运行环境是ThinkPHP3.1.2版 首先index.php中设置为: <?php define('APP_DEBUG', true);//设置为调试模式 require '../ThinkPHP/ThinkPHP.php';//设置入口文件 ini_set("session.save_handler", "user");//设置PHP的SESSION由用户定义 在config.php中设置为: <?php return array(//'配置项'=>'配置值' // 添加数据库配置信 '

weixin_38610870
评论 5
收藏 已收藏
分享
返回顶部
zktz1
Framework 4,250 成员 4,522 内容