thinkphp的数据库save方法,如果其中一个键值为空为什么拼出来的sql不带引号?
例如代码是这样的
这里如果$_POST['email']='';
那么拼出来的sql就是 email=, 没有引号,然后就不能update了,$member=0。
换句话说只要$data里有空的键值,那么save($data)就会失败。
换了写法->where('id='.$id)->data($data)->save()也不行
我搜了1个小时了,最后没辙,只能把没有值的替换成NULL,然后数据里写入了‘NULL’,在输出的时候再把‘NULL’替换成''
各位大大,这个是thinkphp自身的问题吗?
还是说我不应该用这个save($data)方法,还有别的方便的update方法?
$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添加、更新、查询及删除数据的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
ThinkPHP CURD方法之field方法详解
ThinkPHP CURD方法的field方法主要目的是标识要返回或者操作的字段,可以用于查询和写入操作。这篇文章主要介绍了field方法的详细用法,需要的朋友可以参考下
ThinkPHP中limit()使用方法详解
本文介绍ThinkPHP的limit()方法的用法。limit方法可以用于对数据库操作的结果进行取指定范围的条数。即相当于是在mysql查询语句中的limit子句
thinkphp3.2.0 setInc方法 源码全面解析
下面小编就为大家分享一篇thinkphp3.2.0 setInc方法 源码全面解析,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
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(//'配置项'=>'配置值' // 添加数据库配置信 '


Framework
