本地调试正常,上传到服务器PHP数据无法插入的原因排除
有人发有问必答说他的程序在本地测试好好的,购买银众网络云主机后把程序上传到云主机上去后,网站程序发现了很多问题,具体原因是有些提交表单后,出现一片空白,没有任何提示。有些提示已经插入成功,数据库里却没有。请求银众工程师协助排查。
银众技师发现,其SQL语句正常,提交的代码也正确,通过打印post,也发现有数据提交过来,其编辑功能发现其编辑是可以正常使用的,这说明数据库没有问题,可为什么数据库语句无法插入成功呢?接着银众技师检查其数据库结构,终于发现了问题所在。原来要插入的数据表的字段多,提交过来后的数据字段少了。比如你数据库字段设计的为10个字段,而且字段都设计的为必填字段,而提交过来的却只有8个数据,新版本的MySQL对字段的严格检查,不允许有空的字段插入,数据少了,自然就提交不成功。
解决办法:
修改mysql my.ini,将
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
改为
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
重新启动MySQL。
解决办法二:数据库字段做好严格规定,必填的数据不要设置为空,选填的数据字段一定要设置为空。