ThinkPHP增加数据库字段后插入数据为空的解决办法
今天用ThinkPHP做了一个简单的商品发布系统,数据库本来只有四个字段id,name,url,image。id是主键,name是商品名称,url是商品链接,image是商品图片,做的差不多了,发现还少一个字段,那就是价格,然后建立了字段,类型是decimal(8,2),意思是共8位,小数点占两位,然后执行之后,页面显示数据插入成功,但是查看数据库字段为0.00,如下图:
链接纯属虚构,上不去哈,,,于是弄了好长时间,还是不行,然后怀疑是不是ThinkPHP对数字支持不是太好,然后干脆将类型修改成VARCHAR了,并且价格加上了单引号,结果还是一样,纳闷了,,
$Gouwu=M('Gouwu'); //实例化对象 $data['name']="淘宝女装连衣裙"; $data['url']="http://item.taobao.com/item.htm?id=2822929"; $data['image']="http://www.baidu.com/sjsh.jpg"; $data['jiage']='6.82'; //执行插入数据data方法 if($Gouwu->data($data)->add()) echo "插入成功";
然后重启数据库和服务器,结果还是一样,接着用原生代码测试,
1 $conn=mysql_connect("localhost","root","wodemima") or die('连接错误:'.mysql_error()); 2 if($conn) 3 //echo "数据库连接成功"; 4 { 5 mysql_select_db('webappsceshi',$conn); 6 mysql_query('set names utf8'); 7 $sql="INSERT INTO tb_gouwu (name,url,image,jiage) VALUES ('$data[name]','$data[url]','$data[image]','$data[jiage]')"; 8 if(mysql_query($sql,$conn)){ 9 echo "插入成功"; 10 } 11 }
运行之后没问题,数据库也更新了数据,这时感觉是不是ThinkPHP内部出问题了,但是挺成熟的一个框架应该挺完善的呀,又折腾了一会,发现应用目录下有个Runtime,如下图:
感觉这个文件夹可能是运行时的缓存,我对ThinkPHP整个目录分布不太了解,只知道简单的写点类和方法,查了一下就是运行时的缓存文件,具体就不多说了,进去:
全选文件,然后删除就行了,下一次运行程序的时候会自动更新,然后再次运行写好的程序,插入成功,看一下数据果然插入成功了,见下图:
这虽然是个小问题,但对于我不懂原理所以开始没有想到,所以记录下来,遇事多思考,基础的东西是一定要掌握好的,也希望能帮助到大家。